非常基本的c++程序中的意外输出
Unexpected output in VERY basic C++ program
编辑:我的最后一个问题是我如何在我放的数字之前得到一个空格,然后放一个。在句末?
原始问题:我正在学习c++。这是我的代码
#include <iostream>
int main() {
int iNum;
std::cout << "Please enter your favorite number" << std::endl;
std::cin >> iNum;
std::cout << "Your favorite number is" << std::cout << iNum << std::endl;
return 0;
}
我去掉了空格以便于阅读。我希望输出是你最喜欢的数字是4如果我被要求输入4。而是说,你最喜欢的号码是51abc3e84。最后一个数总是我选的那个数。为了得到奇怪的输出,我搞砸了什么?
在检索输入后删除第二个std::cout
,这在程序中没有任何用处。
修改后的行应该是:(更新以反映问题的更新部分)
std::cout << "Your favorite number is " << iNum << "." << std::endl;
当您将std::cout
发送到流中时,您实际上让std::cout
对象尝试将自己处理为要打印的东西。在这种情况下,它似乎将其解释为十六进制表示的32位值(可能是std::cout
的内存位置)。输出中"51ABC3E8"末尾的"4"是从输入中获取的变量值。
std::cout << "Your favorite number is" << std::cout << iNum << std::endl;
//^^You are printing cout
应该std::cout << "Your favorite number is" << iNum << std::endl;
你只需要说一次std::cout
。在初始的cout
之后,只需将所需的所有输出与<<
链接起来,直到语句以;
结束。当你把它放在<<
后面时,你实际上是将cout
转换为void*
。
std::cout << "Your favorite number is" << iNum << std::endl;
应该可以满足你的要求。
编辑:如果你想要一个空格和句号,只要把它们放在你的输出行:
std::cout << "Your favorite number is " << iNum << '.' << std::endl;
相关文章:
- 字符串比较中的意外输出
- 来自 decltype 的意外输出类型
- 字符数组到十六进制字符串的转换 - 意外输出
- 使用 boost::regex 从目录中获取带有一些正则表达式的文件名称时出现意外输出
- 使用后序遍历递归的深度优先搜索会产生意外输出
- C++的意外输出
- 贝金纳C++练习解决方案的意外输出
- 无效* 转换获得意外输出
- 以下程序的意外输出
- 意外输出:矢量矢量(功率集)
- 基本 int 数组提供意外输出
- 线程的意外输出
- 减法中的意外输出
- 带有左移操作员C 的意外输出
- C strncpy意外输出
- 意外输出..函数绑定在虚拟表中的发生方式
- 星号的意外输出
- 已编译的 protobuf 文件的意外输出路径
- 打印对象矢量的意外输出
- 递归函数用于计算 n 个数字之和的意外输出