如何在c ++中从控制台读取字符?

时间:2010-04-01 01:33:11

标签: c++ string parsing character

我正在努力在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;

有人有建议吗?

4 个答案:

答案 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来节省内存,这就让人担心错误了。