c++ - 将字符串存储到二维数组中

标签 c++ string visual-studio vector

  a   b
00001 3
00002 2
00003 1 4
00004 2 4 5
00005 1 2
00006 1 2 4
00007 2 5
00008 3 4 5
00009 3 4 5
00010 2 3

这是我的数据,我在 C++ 中使用 getline 打开它,我希望将它们拆分成一个 2D vector 。希望有一个 10*2 数组,第一列是 a,第二列是 b。我应该怎么办?

这是我的代码

int row = 0;
int column = 2;
string line;
vector<vector<string>>info;
ifstream data("C:\\01_test.txt");
while (getline(data, line))
{

    row++;
}
data.close();

最佳答案

你可以这样做:

string line;
int main(){
 vector<vector<string> > info;
 ifstream data("C:\\01_test.txt");
 static int cnt=0;
 while(getline(data, line)){
  istringstream iss(line);
  info.push_back(vector<string>());
  copy(istream_iterator<string>(iss), istream_iterator<string>(), back_inserter(info[cnt]));
  cnt++;
 }
};

如果您想使用 int vector ,请使用一些函数将字符串更改为 int,例如 atoi。

关于c++ - 将字符串存储到二维数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34041192/

相关文章:

c++ - 对象较大时返回指针或值

c++ - 1024f 整数常量的无效后缀 "F"

java - 如何使用java在文本文件中查找和分隔字符串值?

C# - 添加和减去 IP 地址字符串以创建范围

c++ - Visual Studio 调试 - 局部变量的顺序?

c++ - 从文件中删除重复的反向行时出现问题

c++ - 如何在ACM竞赛中仅使用g++和vim高效地调试程序?

c++使用stringstream从字符串中提取一个int

java - 输出打印第一个字符串和第二个字符串的一部分。字符串大小设置不正确

visual-studio - 实现类 "inherit"XML 注释可以从其实现的接口(interface)中获得吗?