如果我提示用户在一行中输入6个数字,例如:
3 4 5 6 7 8
如何将字符串中的第一个数字存储到变量Num1
中,将第二个数字存储到变量Num2
中,将第3个数字存储到变量Num3
中,等等?即,我需要提示用户输入包含6个不同数字的单行,然后将这6个数字拆分为6个不同的变量。
这是我的代码:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string num;
cout << "Enter one line containing 6 integers" << endl;
getline(cin, num)
return 0;
}
不确定string
是否是正确使用的类型。
此方法会将所有6个数字存储到num
,而不是将6个数字拆分为单独的变量。
答案 0 :(得分:0)
你可以这样做:
cin>>num1>>num2>>num3>>num4>>num5>>num6;
c ++打破空格字符串。
使用'cin'代替'getline'。
答案 1 :(得分:0)
在C中,您可以使用带有strtok的拆分字符串。
请参阅本教程:http://www.c-howto.de/tutorial-strings-zeichenketten-stringfunktionen-zerteilen-strtok.html
对于C ++,我们已经有一个问题可以满足您的需求:Split a string in C++?
希望这会对你有所帮助。
答案 2 :(得分:0)
你可以像这样做你想要的
std::string line;
std::getline(std::cin, line);
std::istringstream iss(line);
iss >> num1 >> num2 >> num3 >> num4 >> num5 >> num6;
但是,我强烈建议您查看容器(例如std::array
,std::vector
,std::list
);