日期:2014-05-16  浏览次数:20699 次

fedora下的scanf問題
因為是console程序   所以想在一個while中的scanf不斷等待用戶輸入控制  

while(1)
{
      printf( "please   input   \n ");
      scanf(...);
}

但是發現這樣當第一次輸入並enter後會不斷的滾出scanf前的 "please   input "而沒有等待輸入的機會   試過這種異常情況在windows中沒有

C++的cout也試過   效果一樣

最後試下來只有getchar()能正常的依次等待輸入   但是這個函數只能讀取一個char   不能接受複雜的控制指令   不知道在fedora下如何才能解決這個 "小問題 "

------解决方案--------------------
while(1)
{
fprintf(stdout, "please input \n ");
getchar() ;
fscanf(stdin, "%d ", &i);
}