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 回答