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

我在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"忘记改过来了

holdtom
浏览 313回答 2
2回答

青春有我

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

红颜莎娜

你的printf输出什么?1种可能是回车符号第2种可能是vim的编码导致你的‘i'是2个字节构成的...
打开App,查看更多内容
随时随地看视频慕课网APP