我是一个初学者,如果问题令人困惑或表达不正确,请对不起。 为了简明扼要,您需要给出3个变量的值,并且输入应在一行中给出。例如,您按3 4 2而不在每个值后面都按Enter,而是在最后按它。代码将如何工作?
答案 0 :(得分:0)
您的要求不明确。请考虑使用RFC 2119样式来消除歧义。
如果可以在一行中给出3个值:
int a,b,c;
cin >> a >> b >> c;
如果必须在一行中给出3个值:
#include <string> // Edit: don't forget these headers
#include <sstream> // after those that you already include
...
string s;
getline(cin,s); // input one line
istringstream sst(s); // then parse that line
int a,b,c;
sst >>a>>b>>c;
答案 1 :(得分:0)
抱歉,我已经有一段时间没有登录了,但我自己回答了。我的代码在下面,感谢您的回答,并感谢我缺乏解释。
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
char a[100];
string c;
int b[3], j=0, i;
cin.getline(a,100);
c=a;
for(i=0; i<3; i++)
b[i]=0;
for(i=0; i<c.length(); i++)
{
if(isdigit(c[i]))
{
b[j]=b[j]+(c[i]-'0');
//cout<<b;
if(isdigit(c[i+1]))
b[j]=b[j]*10;
else
j++;
}
}
for(i=0; i<3; i++)
cout<<b[i]<<" ";
return 0;
}