在C++中,我们有一种方法来搜索文件中的文本.它通过将文件读取到变量并使用strstr来工作.但是当文件变得非常大时我们遇到了麻烦.
我以为我可以通过使用_popen调用find.exe来解决这个问题.它可以找到,除非这些条件都是真的:
- 该文件的类型为unicode(BOM = FFFE)
- 该文件完全是4096字节
- 您要搜索的文本是文件中的最后一个文本
要重新创建,您可以这样做:
- 打开记事本
- 插入2046 X,然后插入A
- 另存为test.txt,encoding ="unicode"
- 验证该文件正好是4096字节
- 打开命令提示符并键入:find"A"/ c test2.txt - >无命中
我也试过这个:
- 添加或删除X,您将获得一个命中(文件不再是4096字节)
- 保存为UTF-8(并添加足够的X以便文件再次为4096字节),然后您就会受到影响
- 在文件中间搜索一些东西(文件仍然是unicode和4096字节),你就会受到欢迎.
这是一个错误,还是我缺少的东西?