繁体   English   中英

在ifstream输入期间,在文件末尾处添加vim新行

[英]vim new line at end of file during ifstream input

我为正在执行的作业制作了一些测试文件,但是我不确定为什么vim在文件末尾给我额外的字符。

因此,我制作了一个“ ABC”文件,其中包含A,B和C,结尾没有换行。 所以像

vim ABC

AAAABBBCC

我输出了部分读取的代码

 46    while(1) {
 47       ch = infile.get();
 48       if(infile.eof()) {
 49          break;
 50       }
 51       cout << '~' << ch << '~' << (int)ch << '~' << endl;
 52       v[(int)ch]++;
 53    }

我得到了

~A~65~
~A~65~
~A~65~
~A~65~
~A~65~
~B~66~
~B~66~
~B~66~
~C~67~
~C~67~
~
~10~

我不确定为什么我的输入文件中出现换行符

末尾没有新行

不,您的末尾确实有换行符。 换行符用作行终止符 ,而不是行分隔符 ,这就是为什么即使最后一行后面也带有'\\ n'的原因。

如果确实需要,可以用:set binary noeol使vim编写不:set binary noeol行,但是vim和C ++都不再认为它是文本文件了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM