0

最初の 2 行が巨大な数字 (最大 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 に答える