特殊字符:EOF 前的“^@”

Special Character: "^@" before EOF

我将命令行上程序的输出通过管道传输到一个文件中,然后在 vim 中打开它。文件的最后是字符:“^@”,这是什么意思?

CRTL-@(由Vim显示为^@)是一个NUL字符,在ASCII table.

您可以在插入模式下使用 CTRL-vCTRL-@ 或使用能够产生 NUL 输出的工具:

$ printf "[=10=]" >tempfile

然后用任何十六进制转储程序检查它:

$ od -xcb tempfile
0000000    0000
         [=11=]
        000
0000001

所以,显然,由于某种原因,您的程序在最后输出 NUL