请考虑以下简单示例
#include <iostream>
int main()
{
using namespace std;
char name[30];
cout << "What is your first name: ";
cin >> name;
cout << "Hello " << name << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
该程序的示例输出如下:
What is your first name: Bob
Hello Bob
Run Code Online (Sandbox Code Playgroud)
这个程序按预期工作,但我不明白输出流如何知道转到下一行.我基本上考虑了两个独立的信息流,并且对输出流如何知道转到下一个信息感到困惑,因为它后面跟着输入.换行符来自哪里?
输出流不会转到下一行.
键入名称后按Enter键.终端具有本地回显,这意味着您在键盘上输入的字符将回显到终端.
您在屏幕上看到的"Bob"和换行符是因为您键入了它们,而不是因为它们是cout由您的程序发送的.
如果您使用关闭本地回显的终端,或者您从包含的文件输入管道输入Bob,那么输出将如下所示:
What is your first name: Hello Bob
Run Code Online (Sandbox Code Playgroud)