0

我需要读取一个文件,其中前两行是巨大的数字(最多 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();
}
4

1 回答 1

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'正如您在上面的代码中看到的那样,您可以通过减法将数字转换为整数值。

于 2013-09-29T12:07:41.617 回答