0
這是一個非常簡單的問題,一直困擾我很多。在while循環中從一行中讀取字符時,它不會再次讀取。如果我使用cin>>name
它工作正常,但我需要字符之間的空格。同樣的問題使用String
類。無法讀取循環中的字符/字符串
int main()
{
int i=0;
int intRate;
char name[20];
while(i!=3){
cout<<"Enter name";
gets(name);
cout<<"Enter Interest Rate: ";
cin>>intRate;
i++;
cout<<endl;
}
cout<<"name is : "<<name<<endl;
cout<<"Interest Rate is: " <<intRate;
}
所以,當我嘗試鍵入字符「得到(名稱)」的循環中,第一次接受字符,然後我也可以進入intRate
,但下一次,當我遇到循環i=1
我無法爲name
鍵入任何內容,或者它不會讀取任何字符行,而是會打印Enter Interest Rate
,並在以下循環中讀取intRate
。
但是,如果我不把進入利率線然後開始讀書再次平穩,象下面這樣:
char name[20];
while(i!=3){
cout<<"Enter name";
i++;
cout<<endl;
如果我這樣做,它會讀取來自循環中的所有字符。如果我在其下面添加另一條打印線,它就不會讀取任何內容。
鴕鳥政策做奇怪的事情,並使用函數getline(並得到非常非常糟糕,因爲你不容防止用戶破您的程序) – deviantfan 2014-10-17 02:18:24
您不能混用cstdio和iostream函數,因爲兩者都使用單獨的緩衝區。 – kay 2014-10-17 02:22:18