我为我正在做的作业制作了一些测试文件,但我不确定为什么vim会在文件末尾给我额外的字符。
所以我创建了一个包含A,B和C的“ABC”文件,最后没有新行。像
这样的东西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~
我不知道为什么我在输入文件中输入换行符
答案 0 :(得分:5)
最后没有新行
不,你最后有一个换行符。新行用作行终结符,而不是行分隔符,这就是为什么即使最后一行后跟'\ n'。
如果你真的需要,你可以让vim用:set binary noeol
写一个未终止的行,但不再是vim和C ++都认为是文本文件的。