我注意到在许多源代码文件中,可以看到在从
当用户输入
cin
读取之前刚好写入cout
而没有明确的刷新:#include <iostream>
using std::cin; using std::cout;
int main() {
int a, b;
cout << "Please enter a number: ";
cin >> a;
cout << "Another nomber: ";
cin >> b;
}
当用户输入
42[Enter]73[Enter]
时,此代码会执行并输出以下结果(在g++ 4.6,Ubuntu下):Please enter a number: 42
Another number: 73
这是一种定义行为吗?也就是说,标准是否规定在读取 cin
之前会自动刷新 cout
?我可以期望所有符合标准的系统都会有这种行为吗?
还是应该在这些消息后加上显式的 cout << flush
呢?