如何在char[]中获得由空格分隔的两个整数
How to get two integers separated by space in a char[]?
我将得到如下所示的一串数字。
12 45
两个用空格分隔的整数
输出为57.
我试过使用
string numbersstream;
cin >> numbersstream;
istringstram twonumbers (numbersstream);
twonumbers >> a >> b;
但是每次我运行它,只有a是正确的,b是错误的。
还有什么其他功能可以帮助我?或者这只是我的编码问题?
在回答中我已经得到了两种建议。
getline(cin,numbersstream);
和
cin << a << b;
感谢大家的宝贵时间。
问题在于您从cin输入的内容。使用operator>>
是用空格分隔的。因此,如果用户输入"12 45",则只提取12。你可以用getline来代替:
getline(cin,numbersstream);
试试这个:
int main()
{
int a;
int b;
std::cin >> a >> b;
std::cout << a+b << "n";
}
问题是在你的代码中:
cin >> numbersstream;
只将一个空格分隔的单词(即12)读入字符串numbersstream
。因此,当你构建twonumbers
时,它实际上只有一个数字。因此,它只设置'a', 'b'未定义。
你可以按照自己的方式来做,但这里你真正需要的是将整行读入字符串:
std::getline(std::cin, numbersstream);
istringstram twonumbers (numbersstream);
用
读取到第一个空白字符为止cin >> numberstream;
下面的代码将读取字符串中的所有内容,直到读取分隔符('n')或文件结束。分隔符被丢弃。
getline(cin,numbersstream);
相关文章:
- 如何将以逗号和空格分隔的整数读取到 2D 数组中?
- C ++中的StringStream有助于使用向量从字符串中提取逗号分隔的整数,而不是空格分隔的整数,为什么?
- 分隔整数 (C++) 的数字
- 从 stdio 获取一行空格分隔的整数,而不知道它们是多少 (C++)
- 从文件中读取后,将分号分隔的整数存储到数组中
- 获取由空格分隔的未知大小的单行输入,并将其存储到整数数组中
- 如何将输入重定向与特殊整数作为分隔线和直至EOF
- 字符串流分析逗号分隔的整数
- 将字节数组转换为逗号分隔的整数字符串
- 我如何使用CIN输入整数,每个数字都被逗号分隔
- 使用 cin 读取逗号分隔的整数对 (x,y) 和任意空格
- C++输出逗号分隔的整数的程序
- 如何读取用户输入的逗号分隔整数
- 正在分析逗号分隔字符串中的整数
- 不能在一行中输入 (cin) 超过 10 个整数,以空格分隔到数组中
- 如何在C++中拆分字符串,其中包含两个由":"分隔的整数?
- 读取空格将数字从文本文件分隔到整数数组 (C++)
- 如何读入和分隔分隔整数,例如"100_4_1 - 15"
- 空格分隔整数的验证
- c++分隔整数