为什么它没有endl就包装了;
why does it wrap without 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;
}
我不明白为什么输出是这样的:
Insert a number: 3
Insert a number: 4
The sum is: 7
而不是像:
Insert a number: 3Insert a number: 4The sum is: 7
因为在readNumber
函数中没有endl;
.
我错过了什么?
(当然,我对我得到的结果感到满意,但这对我来说是出乎意料的)
这是因为您在输入数字 (-:
"输出"的前两行不是纯输出。它与输入混合在一起。
终端具有一个名为 echo 的功能/选项,可在您键入时显示输入。默认情况下,它处于启用状态,并导致您自己的 Enter 按显示为换行符。事实上,如果您在每个输入后附加了一个endl
,这将导致每个数字后面出现一个空行。在 GNU 和许多 UNIX 系统上,可以使用
$ stty -echo
小心使用此命令,因为您将无法看到正在键入的下一个命令(stty echo
或reset
可用于再次启用 echo)。
有关更多信息,请参阅此问题:如何关闭终端中的回声?
相关文章:
- 如何在c++17中制作一个模板包装器/装饰器
- 请解释这句话(cout<<1+int((a<b)^((b-a)&1) )<<endl
- std::vector的包装器,使数组的结构看起来像结构的数组
- 如何在c++迭代器类型中包装std::chrono
- 是否可以用"iostream"包装现有的TCP/OOpenSSL会话
- 用pybind11包装C++抽象类时出错
- 为左值和右值的包装器实现C++范围
- C结构,其指针将被包装在unique_ptr中
- 如何包装第三方DLL在R中使用
- 在类型和包装器之间reinterpret_cast是否安全<Type>?
- 将 N-arg 函数包装到另一个函数中
- 元组由 Swig 生成的 Python 包装器返回,用于C++向量
- 包装一个对象并假装它是一个 int
- 使用 Python Extension API 包装复杂C++类
- 外壳包装器句柄/执行交互式命令管道C++ UNIX
- 包装C++类时不完整的类型 GLFWwindow
- 将函数包装器转换为 std::function
- C++函数包装器来捕获某些信号
- 为什么它没有endl就包装了;
- C++ iostream 的包装类,请使用带有运算符的 std::endl 等流修饰符<<