我编写了一小段代码,其中包含 cout 和 scanf ,其中 cout 打印一条语句,然后 scanf 将值读入整数变量 age 。但是,在我输入年龄值并按回车键之前,该声明不会被打印。请在下面找到代码。我在cpp.sh
上尝试此代码#include <iostream>
#include <cstdio>
int main(){
int age;
std::cout << "Please enter your age: ";
scanf("%d", &age);
std::cout << "Hello, your age is: " << age << std::endl;
return 1;
}
答案 0 :(得分:1)
但在我输入年龄值并按回车键之前,该声明不会被打印。
这是因为std::cout
缓冲输出达到一定长度或应用了明确的flush()
调用。
所以强制输出提示行写:
std::cout << "Please enter your age: " << std::flush;
答案 1 :(得分:0)
替代方法可能是放置std :: endl;在
结束时std::cout << "Please enter your age:"<<std::endl;
std :: endl将输出换行符并刷新流。