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