这是个老问题,常常是因为在 GNU/Linux 和 windows 直接编译同一个文件,这样文件结尾会出现 ^M 符号。注意,这个符号显示的是 "^" 和 "M" 字符组合,本质是一个字符!
在 Shell 命令行或者 Vim 里面使用 Ctrl-v 加 Ctrl-m 就可以输入 ^M 字符了,在 Emacs 里面要用 Ctrl-q 加 Ctrl-m 输入 ^M 字符。