0

我为我正在做的任务制作了一些测试文件,但我不确定为什么 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~

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

4

1 回答 1

5

最后没有新行

不,你最后有一个换行符。换行符用作行终止符,而不是行分隔符,这就是为什么即使最后一行后面也跟着 '\n'。

如果你真的需要,你可以让 vim 用 写一个未终止的行:set binary noeol,但它不再是 vim 和 C++ 都认为的文本文件。

于 2013-11-15T09:41:27.180 回答