我有一个以下列方式包含多行和多列的文本文件。
234 567 890 4523
12 34
78 23 432
我想将它们读入一个数组,例如a[0][0] = 234
, whilea[1][0] = 12
等等。我可以使用 将它们全部放入一维中input >> a[i]
,但我希望将它们放在二维数组中。我尝试使用getline()
,但到目前为止还没有成功。
我有一个以下列方式包含多行和多列的文本文件。
234 567 890 4523
12 34
78 23 432
我想将它们读入一个数组,例如a[0][0] = 234
, whilea[1][0] = 12
等等。我可以使用 将它们全部放入一维中input >> a[i]
,但我希望将它们放在二维数组中。我尝试使用getline()
,但到目前为止还没有成功。
你可以使用std::vector
.std::vector
对于每一行,读入每个数字并使用push_back
将其复制到相关向量(数组)的末尾。
您可以使用std::istringstream
.
std::string
正如您所指出的,您可以通过使用将一行输入读入 a std::getline
。
在伪代码中它就像
void foo()
{
std::vector< std::vector< int > > numbers;
std::string line;
while( getline( cin, line ) )
{
std::istringstream stream( line );
numbers.push_back( std::vector<int>() );
std::vector<int>& v = numbers.back();
int number;
while( stream >> number )
{
v.push_back( number );
}
}
}
免责声明:编译器未触及代码,并且省略了所有错误检查等。