2016-12-07 69 views
1

后我已经写了一小块的代码组合COUTscanf的其中COUT打印一个语句,然后scanf的读一个值的整数变量年龄。但是,只有当我为年龄和按下输入值输入一些值时,才会打印该声明。请找到下面的代码。我想在cpp.sh调用的scanf COUT

#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

多数民众赞成如何它应该正常工作? –

+2

使用'flush':'std :: cout <<“请输入您的年龄:”<< std :: flush;'。 –

+0

@πάνταῥεῖ我认为最好将您的评论转换为答案并提供更多详细信息 – alexeykuzmin0

回答

1

这个代码,但并没有被打印的声明,直到我进入了年龄,然后按回车一定的价值。

这是因为任一达到一定长度或显式flush()呼叫被施加std::cout缓冲器输出。

如此给力输出提示行写:

std::cout << "Please enter your age: " << std::flush; 
0

替代方式,可以把性病:: ENDL;在

std::cout << "Please enter your age:"<<std::endl; 

std :: endl将输出一个换行符并刷新流。