读取.txt文件并组织成二维数组

时间:2017-05-02 05:10:23

标签: c++ arrays file

我希望将50行2列的文本文件放在一个有点冗长的文本文件中,让用户输入文件名并将其读入两个版本的数组中。文本文件是有组织的名称(包括逗号)和数字的组合 我可以让控制台显示文本文件本身,但是当我将数据存入数组时我会陷入困境。我试图设计一个涉及getlinefind的循环代码,以便程序通过.txt排序,停在逗号并将该逗号前的每个字符记录到一个位置(即[0] [0])数组。我知道使用矢量会更容易,但我想用数组解决这个问题。

此外,还存在将名称(字符串)读入数组(int)的问题。

1 个答案:

答案 0 :(得分:0)

请测试此代码:

#include <vector>
#include <fstream>
#include <string>
#include <sstream>
#include <iterator>

template<typename Out>
void split(const std::string &s, char delim, Out result) {
    std::stringstream ss;
    ss.str(s);
    std::string item;
    while (std::getline(ss, item, delim)) {
        *(result++) = item;
    }
}

std::vector<std::string> split(const std::string &s, char delim) {
    std::vector<std::string> elems;
    split(s, delim, std::back_inserter(elems));
    return elems;
}
int main()
{
    std::ifstream file("test.txt", std::ios::binary);
    std::string a, b;
    int c;
    std::vector<std::vector<std::string>> arr;
    if (file)
    {
        while (file >> a )
        {
            std::vector<std::string> v = split(a, ',');
            arr.push_back(v);
        }
    }
    return 0;
}

my test.txt:

m,2
n,4
o,6
p,8
q,10