![](/img/trans.png)
[英]How to check if there is a new line or not at the end of ifstream file. (c++)
[英]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.