我正在努力在c ++中从控制台读取字符。 这是我试图做的:
char x;
char y;
char z;
cout<<"Please enter your string: ";
string s;
getline(cin,s);
istringstream is(s);
is>> x >> y >> z;
问题是如果用户输入类似“1 20 100”的内容:
x will get 1
y will get 2
z will get 0
我想得到的是x = 1; y = 20; z = 100;
有人有建议吗?
答案 0 :(得分:3)
您不想读取字符而是整数。
int x;
int y;
int z;
cout<<"Please enter your string: ";
string s;
getline(cin,s);
istringstream is(s);
is>> x >> y >> z;
答案 1 :(得分:1)
你快到了。 operator>>()
是格式化的提取运算符。将变量从char
类型更改为类型int
,您就可以了。
答案 2 :(得分:1)
听起来你想读整数。你可以这样做:
int x, y, z;
cout << "Please enter three integers: ";
cin >> x >> y >> z;
答案 3 :(得分:1)
你获得这些结果的原因是因为x,y和z是字符,当你使用istringstream时它将第一个字符读入x,它会跳过空格并将字符“2”读入y和下一个字符是'0',进入z。
char x, y, z;
cout << "Please enter three integers: ";
cin >> x >> y >> z;
如果这不起作用,只需使用int,因为试图找到一个变通方法来使用chars而不是int来节省内存,这就让人担心错误了。