我想使用来自库fstream的ifstream fin读取.txt文件,但是文件开头有一个导致问题的BOM。有没有办法,我可以从我的C ++程序中删除.txt文件中的BOM,以便fin可以读取它而没有任何问题?我知道我可以自己手动删除文件中的BOM,但是我有多个文件,所以这需要一段时间。
我的问题类似于这里的问题,除了这个在Java中处理:
How to make Notepad to save text in UTF-8 without BOM?
korifey的答案正是我所寻找的,他们说:
使用PushbackInputStream(in,3)
我能用C ++做些什么吗?还应该注意的是,我只有记事本(不是Notepad ++),最好在不下载任何新软件的情况下解决我的问题。我也不想改变记事本本身查看物料清单的方式,我只想从我的.txt文件中物理删除物料清单。我处理的BOM是前8个字符。
答案 0 :(得分:0)
通过以二进制模式打开文件,读取所有数据并将除BOM之外的所有内容复制到其他文件,然后删除旧文件,最后将新文件重命名为旧文件名称,这将是最简单的方法。 / p>