我編寫了一個程序,用於從控制檯讀取輸入並在控制檯上寫入agian。所以我用下面的代碼。由於cout << cin.rdbuf()導致的無限循環,爲什麼?
#include<iostream>
int main()
{
using namespace std;
cout<<cin.rdbuf();
cin.get();
return 0;
}
但它進入無限循環。始終獲得輸入並將其打印回來。任何人都可以解釋,這裏發生了什麼?
它產生以下輸出:
(等待輸入:輸入克)
g
g
(再次等待輸入:輸入H(任何炭))
h
h
(靜止等待輸入:輸入h(任意字符))
h
h
等,程序總是等待輸入,當我輸入任何charecter它只是打印它。再等待輸入。它不會終止
你期望的行爲是什麼? – 2014-10-29 13:45:39
你怎麼知道有無限循環?它是否輸出「無限循環」? :| – Nawaz 2014-10-29 13:54:48
http:// ideone。com/UpFsFS它肯定會產生輸出 - 在本地運行它會重複整行 – Baldrickk 2014-10-29 14:20:22