我刚开始学习c ++。 在Java中,要分割输入,您只需使用split方法从输入中分割空格。 有没有其他简单的方法,你可以在一个整数数组中拆分字符串输入? 我不关心效率;我只想要一些可以帮助我理解如何从输入中分割空格的代码。
一个例子是: 输入:1 2 3 4 代码:
int list[4];
list[0]=1;
list[1]=2;
list[2]=3;
list[3]=4;
答案 0 :(得分:2)
在C ++中,这可以通过基本上单个函数调用来处理。
例如:
std::string input = "1 2 3 4"; // The string we should "split"
std::vector<int> output; // Vector to contain the results of the "split"
std::istringstream istr(input); // Temporary string stream to "read" from
std::copy(std::istream_iterator<int>(istr),
std::istream_iterator<int>(),
std::back_inserter(output));
参考文献:
如果输入不在字符串中,但是要直接从标准输入std::cin
读取,那么它更简单(因为您不需要临时字符串流):< / p>
std::vector<int> output; // Vector to contain the results of the "split"
std::copy(std::istream_iterator<int>(std::cin),
std::istream_iterator<int>(),
std::back_inserter(output));
答案 1 :(得分:1)
#include <iostream>
#include <array>
int main()
{
int list[4];
for (int i=0; i<4; ++i)
{
std::cin >> list[i];
}
std::cout << "list: " << list[0] << ", " << list[1] << ", " << list[2] << ", " << list[3] << "\n";
return 0;
}
这会将输入拆分为空格,并假设输入中至少有4个整数。