Int 输出与给定值不对应
Int output does not correspond given value
我的第一篇堆栈溢出帖子!
在声明和初始化的 int 中输入 age 值后,奇怪的事情发生了,价值爆炸了。我测试了我的代码,但看不出为什么会发生这种情况。重新检查后,我可以看到这是对我的 int 值执行某些操作的最后一段代码。
我问堆积之神"为什么"。
我的代码在这里:
int main()
{
cout << "Please enter your name and agenn";
string first_name;
int age(0);
cout << age << "nn"; // for testing why i get a huge number for age
cin>> first_name >> age;
cout << age << "nn"; // for testing why i get a huge number for age
cout << "Hello, " << first_name << " age " << age << '`n';
keep_window_open(); // window must be closed manually
return 0;
}
这似乎是令人反感的一点:
'`n';
这是我会得到的输出:
Please enter your name and age
0
et
23
23
Hello, et age 2324586
'`n'
这实际上是两个字符,而不仅仅是换行符。另外,您使用单引号,这些仅用于单个字符,因为字符文本的类型为 const char
.
该标准说:
包含多个整数字符常量的值 字符(例如,"ab"(,或包含字符或转义序列 不映射到单字节执行字符,是 实现定义。
因此,23 : 24586
之后的数字是实现定义的部分,导致这里出现奇怪的输出。使用双引号或'n'
。
相关文章:
- C++,在int数组中输入字符串或字符会输出0,而不是ascii或error
- std::cout输出int时出现编译错误
- C++ 中文件输入输出中的长长 v/s int
- 我从int x[3]得到的一个非常奇怪的输出;
- 使输出流式处理运算符适用于 boost::variant<std::vector<int>、int、double 的正确方法是什么>
- 在MSDOS编译器上,用大于最大值的值初始化int时输出混乱
- 有没有一种简单的方法可以将矢量 int 集转换为字符串输出?
- 基本 int 数组提供意外输出
- 为什么printf和cout为此无符号int提供了不同的输出
- Int 输出与给定值不对应
- 为什么没有"int"类型声明时输出不同?
- 当用户输入int变量的字符串时,输出
- 如何使用字符获取多个输入,使用 int 获取多个输出?C++
- unsigned int/signed int/long-long:无法解释的输出
- 矢量<int>的赋值和输出向量
- 程序的输出,在 C++ 中,&int 到 char* 转换
- 将 64 位 int 作为输出传递到 32 位内联 asm
- 无法输出 int 作为 sizeof() 的结果
- c++输入char类型,输出int类型
- C/ c++程序将输出(int)返回给其他程序