2009-08-31 82 views
1

第一个问题在这里!在文本文件上显示模式搜索输出的最佳方式?

我正在写一个Windows的grep类型程序,只是为了好玩(使用Mingw)。它适用于以'\ n'结尾行的文本文件。我为此使用了fstream :: getline()。

但我也需要能够搜索包含只有一大块文本没有行号的文件。 fstream :: getline()在这里失败。有没有任何函数可以从这样的文件中将N个字符读入缓冲区?

另外,告诉用户在这种文件中找到匹配的最佳方式是什么?

+0

对仅包含一行的文件进行操作的传统'grep'只会输出整行。如果你想做别的事情,你所能做的就是告诉用户有多少个字符。问题是,当你不再考虑它是一个单行文件时,你必须做出任意的决定,在那里你输出整行,并开始考虑它是一个巨大的块。 – Cascabel

+0

谢谢,我想我会指出从文件开始的无格式文本的字符数。 – Quicksilver

回答

2

istream::read()将从istream中读取任意数量的字符。

至于在文件中发现的地方,行号和字符偏移量可能是一个好方法。

+0

这回答我的问题!问题已解决我猜... – Quicksilver

相关问题