我写这段代码时遇到问题
string x;
float num;
while(true){
getline(cin,x);
if(x=="")break;
cin >> num;
}
编译器在一个周期后终止并打印新行
输入:例如"Hello"
和5.5
答案 0 :(得分:4)
cin >> num
读取数字,但不会读取后面的换行符。因此,下次循环运行时,getline()
将读取剩余的空行。
你不应该将cin >>
与getline()
混在一起,它经常会导致这样的问题。用getline()
读取每一行并解析它。