c++ - stringstream 中的自定义字符串输入
问题描述
我正在编写一个程序,它接受一个字符串,并从所述字符串中提取三个数字。下面的代码使用预定义的字符串显示工作程序。我似乎无法弄清楚如何从用户那里获取字符串。我尝试stringstream iss(str)
在 main 函数中声明字符串,但这不起作用。
#include<iostream>
#include<string.h>
#include <sstream>
using namespace std;
int main()
{
int T,j;
int X,Y,K;
string s;
stringstream iss("134 513 515");
cin>>T;
for(int i=0;i<T;i++)
{
iss>>X>>Y>>K;
cout<<X<<endl<<Y<<endl<<K<<endl;
int count=((X+Y)/K);
if(count%2==0)
cout<<"Chef ";
else
cout<<"Paja ";
}
cin>>j;
return 0;
}
解决方案
您可以使用getline读取字符串,然后将其传递给stringstream:
#include<iostream>
#include<string.h>
#include <sstream>
using namespace std;
int main()
{
int T,j;
int X,Y,K;
string s;
cin>>T;
cin.ignore();
for(int i=0;i<T;i++)
{
getline(cin, s);
stringstream iss(s);
iss>>X>>Y>>K;
cout<<X<<endl<<Y<<endl<<K<<endl;
int count=((X+Y)/K);
if(count%2==0)
cout<<"Chef ";
else
cout<<"Paja ";
}
cin>>j;
return 0;
}
之后不要忘记cin.ignore()
刷新 cin 缓冲区cin>>T;