双精度数字程序意外值
Double Number Program Unexpected Values
关于程序
程序获取用户输入的数字,并输出该数字加倍。我创建了两个函数,一个收集数字(getnumber),另一个将其加倍(doublenumber)。该程序确实可以正常工作;但是,输出并不完全准确。
问题所在
输出仅部分正确。即用户输入 50,值加倍,输出应为 100。相反,该值输出为 100114。只有前几个数字似乎是我想要的。
源代码:
#include <iostream>
void doublenumber(int&);
void getnumber(int&);
int main() {
int value;
getnumber(value);
doublenumber(value);
std::cin.get();
std::cin.get();
return 0;
}
void doublenumber(int &refvar) {
refvar*= 2;
std::cout << "nThe value you entered doubled is: " << refvar << '.n';
}
void getnumber(int &userNum) {
std::cout << "nEnter a number to double: ";
std::cin >> userNum;
}
std::cout << "nThe value you entered doubled is: " << refvar << '.n';
^^^^^
|
multicharacter literal
它是一个多字符文字,并且具有一种int
。
C++11 §2.13.2 字符文字
字符文字是用单引号括起来的一个或多个字符,如
’x’
,可选地在字母L
前面,如L’x’
。不以L
开头的字符文本是普通字符文本,也称为窄字符文本。包含单个 c-char 的普通字符文本具有 char 类型,其值等于执行字符集中 c-char 编码的数值。包含多个 c-char 的普通字符文本是多字符文本。多字符文本具有类型int
和实现定义的值。
看看这篇文章:为什么这个带有"1234"的代码在C++中编译?。
在仔细查看代码后,我已经回答了我自己的问题。呸!一个非常简单的错误:
std::cout << "nThe value you entered doubled is: " << refvar << '.n';
"."应改为:".";"。有人可以告诉我为什么这会产生这个输出吗?
相关文章:
- 更改.cpp程序的输入文件中数据的位置会意外更改输出
- 多线程程序中出现意外的内存泄漏
- C++ 程序意外退出
- 在gcc中意外调用了Const重载.编译器错误或兼容性修复程序
- 如果我删除指针,我的C++程序会意外删除系统文件吗?
- Qt 应用程序具有意外的 QDir::currentPath
- 排序程序的意外错误代码
- 以下程序的意外输出
- QT应用程序意外的语言事件
- 简单程序中的意外推力错误
- 程序意外终止C
- 设置终止和意外处理程序
- 双精度数字程序意外值
- QWT示例该程序已经意外完成
- 使用双精度的程序的意外行为
- 查找素数的程序意外停止
- 程序意外地完成了-QT创建者
- cpp 程序中的意外输出
- 当我在递归函数中调用 return 时,我的程序意外完成
- Arduino上的意外程序停止