如何从输入中获取某个元素(C ++)

时间:2014-01-17 22:01:38

标签: c++

我是C ++编程的新手。 我试图向用户询问输入(例如):

std::string numbers;
std::cout << What is your favorite number;
std::cin >> numbers

如果用户输入

1, 2, 3

如何仅提取数字“2”?我知道在python中,你会做类似数字[1]的东西,但是在C ++中也有同样的方式吗?

3 个答案:

答案 0 :(得分:3)

那么,“你最喜欢的数字是什么?”

这个想法与python或任何其他语言相同:用输入行分隔分隔符,如果你在意的话修剪,最后得到你想要的元素(如果存在)。

答案 1 :(得分:2)

你可以通过numbers.length()得到字符串的长度。

然后你可以使用for循环。

for(int i =0 ; i < numbers.length();i++)
{
  if(numbers[i] == '2')
     // do what you want you do here with 2
}

请记住,由于空白,您的cin不会获得完整的“1,2,3”字符串。你应该使用getline而不是cin。

如..

getline(cin, numbers,'\n'); 

答案 2 :(得分:1)

抓住一行数字:

int main()
{
     std::vector<int>    numbers;
     std::string line;
     std::getline(std::cin, line);           // First read the whole line of input

     std::stringstream linestream(line);     // Set up to parse the line
     int               number;
     while(linestream >> number) {           // Read a number
        char x;                              // for the comma
        linestream >> x;                     // remove the comma

        numbers.push_back(number);           // Add to the vector (array)
     }

     // Print the number
     std::cout << "The second number is: " << numbers[1] << "\n";  // vectors are 0 indexed
}