linux 下read()函数读文本文件问题
我在linux下写了一个read()函数读一个只含一个字符i的word.txt文件为什么会读到2个字符啊?代码如下:#include<unistd.h>#include<...
我在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"忘记改过来了 展开
#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"忘记改过来了 展开
4个回答
展开全部
doc文件是office word文件,估计在linux里读会有问题。好像装了open office可以打开它,可以试试。
追问
哥哥 我这题跟doc没有半毛钱关系吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的printf输出什么?
1种可能是回车符号
第2种可能是vim的编码导致你的‘i'是2个字节构成的...
1种可能是回车符号
第2种可能是vim的编码导致你的‘i'是2个字节构成的...
追问
是回车符 那么这么说的话read()函数读文件是读不到文件结束符的喽? 只有用getchar(fp)一个一个读,最后fp文件指针才会跳到文件结束符去,是不是这样理解?
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询