我为我正在做的作业制作了一些测试文件,但我不确定为什么vim会在文件末尾给我额外的字符.
所以我创建了一个包含A,B和C的"ABC"文件,最后没有新行.所以像
vim ABC
AAAABBBCC
Run Code Online (Sandbox Code Playgroud)
我输出了部分读取代码
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 }
Run Code Online (Sandbox Code Playgroud)
我得到了
~A~65~
~A~65~
~A~65~
~A~65~
~A~65~
~B~66~
~B~66~
~B~66~
~C~67~
~C~67~
~
~10~
Run Code Online (Sandbox Code Playgroud)
我不知道为什么我在输入文件中输入换行符
小智 5
最后没有新线
不,你最后有一个换行符.换行符用作行终止符,而不是行分隔符,这就是为什么即使最后一行后跟'\n'也是如此.
:set binary noeol如果你真的需要,你可以让vim编写一个未终止的行,但它不再是vim和C++认为的文本文件.