Loops 检查输入是否为整数循环
因此,我尝试创建一个只接受整数的循环,它最初工作正常,但一旦输入了非整数的字符串流,它将持续跳过if语句,即使使用了正确的输入。我错过什么了吗Loops 检查输入是否为整数循环,loops,if-statement,input,int,stringstream,Loops,If Statement,Input,Int,Stringstream,因此,我尝试创建一个只接受整数的循环,它最初工作正常,但一旦输入了非整数的字符串流,它将持续跳过if语句,即使使用了正确的输入。我错过什么了吗 # include "stdafx.h" #include <iostream> #include <fstream> #include <sstream> #include <string> using namespace std; int main() { string str; stri
# include "stdafx.h"
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
using namespace std;
int main()
{
string str;
stringstream ss;
int a;
for(;;)
{
getline(cin, str);
ss<<str;
if (ss>> a)
{
cout<<"okay";
break;
}
cout<<str<<endl;//debugging (prints the correct input
str.clear(); //
ss>>str; //
cout<<str<<endl;// doesn't print anything but the endl space
cout<< "try again";
ss.str("");
}
}
#包括“stdafx.h”
#包括
#包括
#包括
#包括
使用名称空间std;
int main()
{
字符串str;
细流ss;
INTA;
对于(;;)
{
getline(cin,str);
(甲)
{
cout在for
循环中移动ss.str(“”;
),以便在读取下一行之前清除stringstream
在粘贴的代码中还有一个额外的}
。这可能与该行如何结束在循环之外有关
或者,您可以使用:
ss.str(str);
为了从输入中填充stringstream
,而不是用>
oops追加它,额外的{来自复制/粘贴错误。我在for循环中移动了ss.str(“”),但仍然存在相同的问题。