Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/152.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么它不带endl;? 我是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; }_C++ - Fatal编程技术网

为什么它不带endl;? 我是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; }

为什么它不带endl;? 我是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; },c++,C++,而不是像: Insert a number: 3Insert a number: 4The sum is: 7 因为在readNumber函数中没有endl 我错过了什么 (当然,我对得到的结果很满意,但这对我来说是出乎意料的)这是因为在输入数字(-: “输出”的前两行不是纯粹的输出。它与输入混合在一起。终端有一个名为echo的功能/选项,它在您键入时显示输入。默认情况下,它是启用的,并使您自己的回车键显示为换行符。事实上,如果您在每次输入后都添加了一个endl,这将导致输入后出现一个空行在G

而不是像:

Insert a number: 3Insert a number: 4The sum is: 7
因为在
readNumber
函数中没有
endl

我错过了什么

(当然,我对得到的结果很满意,但这对我来说是出乎意料的)

这是因为在输入数字(-:


“输出”的前两行不是纯粹的输出。它与输入混合在一起。

终端有一个名为echo的功能/选项,它在您键入时显示输入。默认情况下,它是启用的,并使您自己的回车键显示为换行符。事实上,如果您在每次输入后都添加了一个
endl
,这将导致输入后出现一个空行在GNU和许多UNIX系统上,可以使用

$ stty -echo
小心使用此命令,因为您将无法看到正在键入的下一个命令(
stty echo
reset
可用于再次启用echo)


有关详细信息,请参阅此问题:

当您键入一个数字时,是否按Enter键?您键入
3
并单击Enter键。在您单击Enter键之前,控制台不会将输入发送到程序。输出与您键入的数字交错。请尝试键入“3 4”.至于知识,我建议您尝试作为一个实验。@jblixr因为这是一个初学者问题,可能会与给定的链接混淆。这是一个很好的、姿势良好的初学者问题。我喜欢看到这样的问题。+1表示输入、预期输出和代码。虽然接受的答案清晰正确,但这一个确实是最基本的问题因为除此之外还有“但是为什么
Enter
生成换行符呢?”——这最终与终端设备本身有关,而不仅仅是用户的按键。
$ stty -echo