如何读取一串字符并存储到多个变量中?

时间:2014-02-07 03:59:23

标签: c++ string

如果我提示用户在一行中输入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个数字拆分为单独的变量。

3 个答案:

答案 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::arraystd::vectorstd::list);