3

C++ で、バイナリにエクスポートするプログラムを作成し、現在リーダーを作成しています。正しく読み取れますが、問題は 1 つだけです。私のファイルは一連の数字を含むファイルであり、それが読み取られて画面に出力されると、1470009300047000199 が表示されます。3 つの「000」のセットは存在しないはずです。私はこのファイルを ifstream を使用してロードしましたが、そのままにしておく予定です。ファイル内の「000」のセットを削除する方法を教えてもらえますか? それを行う別の C++ プログラムを作成する必要がある場合は、「000」を削除してスペースに置き換えるだけで十分です。

#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int main(int argc, char* argv[])
{
    if (argc < 2)
    {
        cout << "Error 1";
        return 0;
    }
    else
    {
        int FileLength;
        ifstream InputFile(argv[1], ios::binary);
        ofstream OutputFile("DECOMPILED_FILE.txt");
        InputFile.seekg(0, ios::end);
        FileLength = InputFile.tellg();
        InputFile.seekg(0, ios::beg);
        for (int i = 0; i < FileLength; i++)
        {
            cout << InputFile.get();
        }

        cin.get();
    }
    return 0;
}
4

1 に答える 1

2

正規表現はどうですか?ファイルでサブストリング'000'を見つけてみてください。見つかった場合は、「」に置き換えてください。擬似コード:

for each line in the file do:
     if line.strstr("000") then
           line.replace("000", " ")

      cout << line << endl;
于 2012-07-27T00:08:27.713 に答える