2015-09-25 82 views
0

這裏的是代碼,我有C++的std :: CIN是停留在80線輸入

int main() 
{ 
    int total = 0; 
    int count = 0; 
    std::cin >> total; 


    int arr[4] = {0,0,0,0}; 

    while(count < total) 
    { 

    std::cin>>arr[0]>>arr[1]>>arr[2]>>arr[3]; 

    count++; 
    std::cout<<count<<std::endl; 

    } 

return 0; 

} 

所以輸入的第一行告訴我需要多少行讀after..and每一行都有4個數字由空格分隔。每當行數超過80(例如100)時,while循環就會卡住。我不知道是什麼原因造成的問題,我已經嘗試了幾件事情像cin.clear(),但他們只是沒有工作....

編輯:後80行輸入與的std :: CIN停止讀取像10 20 210 10

的Xcode與LLVM格式沒有工作......不過G ++使用終端工程.... http://melpon.org/wandbox/permlink/UXAMgM4ldn2K2NgU 這裏是相剋我的終端上工作++,但不是我的Xcode ...

代碼
+2

您對問題的描述非常含糊。 「卡住」是什麼意思?你如何精確測試? –

+0

輸入的行80是什麼樣的?它是否包含不是整數的東西? –

+0

@JoachimPileborg他們都是整數像10 20 30 40 – GalaxyVintage

回答

1

這是輸出卡住了。除非count的輸出被某些東西讀取並被消耗,否則最終輸出緩衝區將變滿並且cout行將被阻塞。

+0

如何重置輸出緩衝區? – GalaxyVintage

+0

你爲什麼要重設它? –

+0

對不起......你說緩衝區已滿,所以我想也許重置它會讓它繼續..我誤解了什麼? – GalaxyVintage