如何使用C ++消除记事本.txt文件中的BOM? [重复]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用C ++消除记事本.txt文件中的BOM? [重复]相关的知识,希望对你有一定的参考价值。
这个问题在这里已有答案:
我想使用来自库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 ++),最好在不下载任何新软件的情况下解决我的问题。我也不想改变记事本本身对BOM的看法,我只是想从我的.txt文件中物理删除BOM。我正在处理的BOM是前8个字符。
答案
通过以二进制模式打开文件,读取所有数据并将除BOM之外的所有内容复制到另一个文件,然后删除旧文件,最后将新文件重命名为旧文件名称,这将是最简单的方法。
以上是关于如何使用C ++消除记事本.txt文件中的BOM? [重复]的主要内容,如果未能解决你的问题,请参考以下文章
Bash:如何消除字符串中的所有数字字符,但保留括号内的字符?
python/zip:如果提供了文件的绝对路径,如何消除 zip 存档中的绝对路径?