vim打开txt文件看到^@字符

‘\0‘字符为不可见字符,vim编辑器会使用‘^@’字符来显示‘\0‘字符。

看如下代码:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    char    buf[] = "hello world!";
    FILE    * fp = NULL;
    size_t  ret = 0;
    
    fp = fopen("./test.txt", "a");
    if (fp == NULL) {
        printf("fopen error!\n");
        exit(-1);
    }

    ret = fwrite(buf, sizeof(char), sizeof(buf), fp);
    printf("ret = %zd\n", ret);
    
    fclose(fp);

    exit(0);
}

程序执行后,会在当前目录生成一个test.txt文本文件。使用vim编辑器打开,内容如下所示:

hello world!^@

问题出现在下面这段代码:

ret = fwrite(buf, sizeof(char), sizeof(buf), fp);

这条语句把‘\0‘字符写入到了test.txt文本文件中。

将这条语句改为下面的形式:

ret = fwrite(buf, sizeof(char), strlen(buf), fp);    // need <string.h>

则生成的文本文件中将不再包含‘\0‘字符。

时间: 2024-09-29 20:05:53

vim打开txt文件看到^@字符的相关文章

ubuntu 中用vim打开txt等文件中文显示乱码的解决方法 &nbsp;

今晚用ubuntu 12.04 的vim编辑网页代码时,发现上面的中文显示乱码.这个html文件是我之前用gedit编辑的,在gedit里面显示正常,可是在vim下显示就是乱码了. 怎么解决ubuntu中vim显示中文乱码的问题呢? 首先,添加中文字符编码: sudo gedit /var/lib/locales/supported.d/local 在打开的文件中添加下面的中文字符集 zh_CN.GBK GBK zh_CN.GB2312 GB2312 zh_CN.GB18030 GB18030

Linux打开txt文件乱码的解决方法

Linux显示在Windows编辑过的中文就会显示乱码是由于两个操作系统使用的编码不同所致.Linux下使用的编码是utf8,而Windows使用的是gb18030.因此,解决Linux打开txt文件中文乱码可有如下两种方法. 方法一: 在附件终端中,进入到txt文件所在目录,使用命令符"iconv-f gb18030  -t utf8 1.txt -o 2.txt"把gb18030编码的1.txt转换成utf8的2.txt.这样2.txt就成为Linux支持的编码. 方法二: 在附件

使用vim打开某文件一直出现Swap file &quot;.nginx.conf.swp&quot; already exists!

故障:在使用vim编辑nginx的配置文件的时候,一直出现swp文件已存在的现象: 在使用vim编辑某文件的时候,会产生一个swp文件 .FILENAME.swp 在正常编辑结束退出的时候,该文件会被自动删除 如果不小心删除原文件,可以使用vim -r FILENAME,就是利用swp文件恢复原文件(前提是系统没有重启,系统重启后,该文件也会消失) 一般,在使用vim打开某文件的时候出现这种问题的原因有两种: 1.此时该文件已经被打开 在这种情况下可以使用只读方式打开 2.就是由于swp文件存在

第一篇-Win10打开txt文件出现中文乱码

如果刚开始安装的是英文的Win10系统,那么打开txt文件时很容易出现乱码问题.包括打开cmd窗口,也是不能显示中文的.当然,麻烦的处理方法是: 在cmd中想要显示中文:先输入chcp 936,之后中文就可以正常显示. txt文件中想能够看见中文,就在保存文件时点击另存为,然后选择旁边的编码为utf-8,当然,这仅限于自己编写的含有中文的文件保存时有用. 另外一个简单的方法就是设置系统的语言为中文.控制面板中时间,区域,语言设置里面,选择语言为中文简体就OK了. 原文地址:https://www

解决在Ubuntu下打开txt文件乱码的问题

在装双系统的情况下,由于windows默认编码为GBK,而Ubuntu编码为UTF-8,所以在Ubuntu下打开Winodws的txt文件时,可能出现乱码问题. 解决的方法如下: iconv -f GBK -t UTF-8 gbk.txt就可以在终端看到正常的文件了 也可以将转换的文件存储到另一个文件里iconv -f GBK -t UTF-8 gbk.txt >gbk2utf8.txt就可以把转换后的内容存入gbk2utf8.txt供以后查看

notepad++设置默认打开txt文件失效的解决方法

1.系统环境 win10企业版,64位系统 2.初步设置 设置txt默认为notepad++打开,菜单:设置->首选项->文件关联 选择对应的文件扩展,点击"关闭"按钮生效. 但是双击任意一个txt文件并不能打开,还是使用的window自带的记事本打开. 3.优化设置 64位系统,软件要设置成管理权限打开,有些软件要设置兼容性.找到notepad++的安装目录: 右键:属性,找到"兼容性"标签 点击"更改所有用户的设置",选择&quo

Linux打开txt文件乱码解决方案

例如打开dic_ec.txt乱码. 解决方法:切换控制台到文件dic_ec.txt所在目录,然后输入 1 [email protected]:~/文档/NLP$ iconv -c -f gb2312 -t utf-8 dic_ec.txt>dic.txt 意思就是将dic_ec.txt文件中的内容的编码格式由gb2312转换为utf-8.windows系统下的txt的编码格式是gb2312.

python 打开txt文件

我先开始一直以为自己打开的是csv文件,用网上打开csv文件的方法打,结果系统一直说找不到找不到,我气死 https://jingyan.baidu.com/article/380abd0a3ad2431d90192c30.html 上面没有任何输出,因为打开文件之后,还没有读取内容: f = open(r"D:\HintSoft\Hint-W7\Desktop\新建文本文档.txt",'r') s=f.read() print(s) 这样,python就返回了文件里面的所有信息 如果

解决Mac上打开txt文件乱码问题

出处:https://www.jianshu.com/p/f55ddf1e9839 经常会在Mac上打开一个txt文件,发现里面的中文都是乱码,问题是在Windows和手机上看都完全是正常的,这就十分闹心了.网上千奇百怪的解决方案大多不能用,试错后发现一个解决方案.需要用到命令行工具iconv,语法是这样的: iconv -f encoding -t encoding sourcefile > destinationfile 比如一个典型的例子(也是大多数情况): iconv -f GB1803