我是C++初学者,我刚刚编写了一个简单的程序:
#include <iostream>
using namespace std;
int readNumber()
{
cout << "Insert a number: ";
int x;
cin >> x;
return x;
}
void writeAnswer(int x)
{
cout << "The sum is: " << x << endl;
}
int main()
{
int x = readNumber();
int y = readNumber();
int z = x + y;
writeAnswer(z);
return 0;
}我不明白为什么输出是这样的:
Insert a number: 3
Insert a number: 4
The sum is: 7也不像:
Insert a number: 3Insert a number: 4The sum is: 7因为在readNumber函数中没有endl;。
我遗漏了什么?
(当然,我对我得到的结果很满意,但这对我来说是出乎意料的)
发布于 2016-01-27 14:34:37
终端有一个名为echo的特性/选项,它在输入时显示输入。默认情况下,它已启用,并导致您自己的Enter按下显示为换行符。实际上,如果您在每个输入之后附加了一个endl,这将导致在每个数字后面出现一个空行。在GNU和许多UNIX系统上,可以使用
$ stty -echo注意此命令,因为您将无法看到您正在键入的下一个命令(可以再次使用stty echo或reset启用回显)。
有关更多信息,请参见以下问题:How do I turn off echo in a terminal?
https://stackoverflow.com/questions/35036300
复制相似问题