while(scanf("%d ",&a)==1)為什么輸入回車鍵后結束不了?(a是int 型)
提交到oj平臺上又有結果
在編譯器輸入字符才顯示結果
uj5u.com熱心網友回復:
回車符是將輸入快取的內容刷到記憶體,如果輸入快取里沒有內容,那么如何刷到記憶體?uj5u.com熱心網友回復:
#include<iostream>#include<cstdio>
using namespace std;
long long a,s,i,w;
int main() {
while(scanf("%d ",&a)==1) {
s+=a;
i++;
}
w=1;
for(int j=1; j<i; j++)
w*=2;
cout<<s*w;
return 0;
}
uj5u.com熱心網友回復:
程式在下面,我輸入的是2 加回車但是沒輸出uj5u.com熱心網友回復:
代碼里%d后面有空格,你輸入的時候2和回車中間也該加空格。uj5u.com熱心網友回復:
供參考:https://blog.csdn.net/21aspnet/article/details/174326建議改為如下形式:
while(scanf("%d",&a),a){//輸入0時結束輸入uj5u.com熱心網友回復:
你代寫得有問題,本來就不應該有輸出的。你一直輸入數字然后回車,程式會一直在while(scanf("%d",&a)==1)中回圈的,除非你輸入非法的字符才會結束回圈。uj5u.com熱心網友回復:
跟空格沒關系,格式化輸入會自動將空格忽略,只有非空格字符才會嚴格按轉換批示字串匹配。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/250311.html
標籤:C語言
上一篇:conio.h使用(失敗)
