如何从文件读取长数字到vector <int>?</int>

时间:2013-09-29 12:00:17

标签: c++

我需要读取两个第一行是大数字(最多200位)的文件:

1. 123456789123456789...
2. 123456789123456789...

并将它们放入:

std::vector<int> digits[2];

怎么做?

将文件读取到std::string,就像那样:

std::string line[2];

void input(char* filename)
{
    std::fstream inFile;
    inFile.open(filename, std::ios::in);
    if(inFile.is_open())
    {
        for(int i = 0; i < 2; i++)
        {
            std::getline(inFile, line[i]);
        }
    }

    inFile.close();
}

1 个答案:

答案 0 :(得分:1)

这个怎么样?

std::vector<int> digits[2];

void input(const char* filename)
{
    std::ifstream inFile(filename);
    if (inFile.is_open())
    {
        for(int i = 0; i < 2; i++)
        {
            std::string header, number;
            inFile >> header >> number;
            for (size_t j = 0; j < number.size(); ++j)
                digits[i].push_back(number[j] - '0');
        }
    }
}

这似乎并不特别困难。我做了几个假设,因为你的要求并不完全清楚。

在我的代码header中获取“1”或'2.'在我假设你不感兴趣的行的开头部分。之后只是循环遍历number字符串并将每个数字转换为它的整数值(这就是我的意思)假设您要这样做并将其添加到矢量中。您可以通过减去'0'将数字转换为整数值,如上面的代码所示。