首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么它不带endl;?

为什么它不带endl;?
EN

Stack Overflow用户
提问于 2016-01-27 11:36:56
回答 1查看 191关注 0票数 10

我是C++初学者,我刚刚编写了一个简单的程序:

代码语言:javascript
复制
#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;
}

我不明白为什么输出是这样的:

代码语言:javascript
复制
Insert a number: 3
Insert a number: 4
The sum is: 7

也不像:

代码语言:javascript
复制
Insert a number: 3Insert a number: 4The sum is: 7

因为在readNumber函数中没有endl;

我遗漏了什么?

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

EN

回答 1

Stack Overflow用户

发布于 2016-01-27 14:34:37

终端有一个名为echo的特性/选项,它在输入时显示输入。默认情况下,它已启用,并导致您自己的Enter按下显示为换行符。实际上,如果您在每个输入之后附加了一个endl,这将导致在每个数字后面出现一个空行。在GNU和许多UNIX系统上,可以使用

代码语言:javascript
复制
$ stty -echo

注意此命令,因为您将无法看到您正在键入的下一个命令(可以再次使用stty echoreset启用回显)。

有关更多信息,请参见以下问题:How do I turn off echo in a terminal?

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35036300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档