第一个问题在这里!在文本文件上显示模式搜索输出的最佳方式?
我正在写一个Windows的grep类型程序,只是为了好玩(使用Mingw)。它适用于以'\ n'结尾行的文本文件。我为此使用了fstream :: getline()。
但我也需要能够搜索包含只有一大块文本没有行号的文件。 fstream :: getline()在这里失败。有没有任何函数可以从这样的文件中将N个字符读入缓冲区?
另外,告诉用户在这种文件中找到匹配的最佳方式是什么?
第一个问题在这里!在文本文件上显示模式搜索输出的最佳方式?
我正在写一个Windows的grep类型程序,只是为了好玩(使用Mingw)。它适用于以'\ n'结尾行的文本文件。我为此使用了fstream :: getline()。
但我也需要能够搜索包含只有一大块文本没有行号的文件。 fstream :: getline()在这里失败。有没有任何函数可以从这样的文件中将N个字符读入缓冲区?
另外,告诉用户在这种文件中找到匹配的最佳方式是什么?
istream::read()将从istream中读取任意数量的字符。
至于在文件中发现的地方,行号和字符偏移量可能是一个好方法。
这回答我的问题!问题已解决我猜... – Quicksilver
对仅包含一行的文件进行操作的传统'grep'只会输出整行。如果你想做别的事情,你所能做的就是告诉用户有多少个字符。问题是,当你不再考虑它是一个单行文件时,你必须做出任意的决定,在那里你输出整行,并开始考虑它是一个巨大的块。 – Cascabel
谢谢,我想我会指出从文件开始的无格式文本的字符数。 – Quicksilver