让我们考虑以下代码:
#include<iostream>
int main()
{
std::cout<<"First-";
std::cout <<"-Second:";
int i;
std::cin>>i;
std::cout<<"Third in a new line.";
while(1){}
}
当 i
的值为 4 时的输出是:
First--Second:4
Third in a newline
cout
不打印任何换行符。但是在我为 i
输入任何值(4)之后,打印了一个换行符。这可能有两个可能的原因:
- The Enter key I press after typing a numerical value for
i
is printed as a newline.cin
automatically generates a newline.
虽然第一个原因似乎更合理,但我认为第二个原因也可能是真的,因为当我按 Enter
时打印了 Third
之后没有新的由于 while(1)
,即使程序继续运行,也会打印行——这意味着当按下 Enter
键时,控制台窗口不会打印换行符。所以看起来 cin
会自动打印一个换行符。
那么,为什么在我输入cin
后会生成换行符? cin
是否自动打印换行符?
最佳答案
您输入的数字和换行符由控制台软件打印。 cin
在我看来不会打印任何内容。
尝试通过重定向或管道提供一些输入,我想您将看不到打印的新行。
例如:
$ echo 4 | ./a.out
First--Second:Third in a new line.
$
是提示符,echo 4 | ./a.out(Enter)
是您的输入。
关于c++ - `cin` 会自动产生换行符吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35670506/