天天看点

c++getline读取txt时第一行最前面会多出几个字符问题

问题解决方法来自: https://tieba.baidu.com/p/820038685

问题

VS2013上使用geiline读取文件时,读取的第一行,一开始的几个字符是乱码

std::string buf;

std::fstream fs("./config.txt",std::ios::in);

while(getline(fs , buf)) {…};

解决

使用notepad++或editplus等可以改变编码格式的编辑器

  1. 把文件内容先复制一遍,这样是为了防止汉字变成乱码
  2. 从菜单栏找到"编辑"按钮
  3. 点击"转为ANSI编码"
  4. 把复制的文件内容粘贴回去
c++getline读取txt时第一行最前面会多出几个字符问题

疑问

我打算在VS2019上复现这个问题,却发现复现不出来…

真奇怪真奇怪真奇怪真奇怪真奇怪真奇怪真奇怪真奇怪真奇怪真奇怪真奇怪真奇怪真奇怪真奇怪真奇怪真奇怪真奇怪真奇怪真奇怪真奇怪真奇怪真奇怪真奇怪真奇怪真奇怪真奇怪真奇怪真奇怪真奇怪真奇怪真奇怪真奇怪真奇怪真奇怪真奇怪真奇怪真奇怪真奇怪真奇怪真奇怪