为了账号安全,请及时绑定邮箱和手机立即绑定

read()函数读文本文件发现的问题,不知道该怎么解决,求助!

read()函数读文本文件发现的问题,不知道该怎么解决,求助!

holdtom 2021-10-21 19:15:34
我在linux下 写了一个read()函数读一个只含一个字符i的word.txt文件 为什么会读到2个字符啊?代码如下:#include <unistd.h>#include <string.h>#include <fcntl.h>#include <stdio.h>int main(){int fd,i;char buf[10]={0};fd=open("./a.txt",O_RDONLY);i=read(fd,buf,10);printf("%d\n",i);printf("%d\n",buf[0]);printf("%d\n",buf[1]);close(fd);}word.txt 是在linux下 用vim 建的 只输了一个i进去,然后退出保存的open 里面是 "./word.txt"忘记改过来了
查看完整描述

2 回答

?
青春有我

TA贡献1784条经验 获得超8个赞

那是因为vim自动给你加上换行符了'\n',即0x0a,你可以用ls -l word.txt看一下,文件大小是不是两个字符。

查看完整回答
反对 回复 2021-10-24
?
红颜莎娜

TA贡献1842条经验 获得超12个赞

你的printf输出什么?
1种可能是回车符号
第2种可能是vim的编码导致你的‘i'是2个字节构成的...

查看完整回答
反对 回复 2021-10-24
  • 2 回答
  • 0 关注
  • 312 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信