我有一个 c++ 程序,它有一些命令行选项。其中之一是文件名。文件很大,所以我决定压缩它,然后尝试找到一种方法让 c++ 程序读取压缩文件而不是纯文本文件。
根据此处所述如何在 C++ 中逐行读取 .gz 文件?我尝试了第二个答案,但它不起作用。
假设运行我的程序的正常命令行是
./run 1 file.txt 10
现在我跑
zcat file.gz | ./run 1 file.gz 10
但是输出无效。我该如何解决?
PS:
该文件看起来像
10 1000
2 39
45 124
读取文件的代码看起来像
char *inp = argv[2];
std::ifstream fin (inp);
int a, b;
while (fin >> a >> b ) {
// somthing
}