我正在使用C:
中的简单代码读取此文本文件(逐个字符)这是文件
printf 函数不会打印任何内容!
它只是一行文本(但它发生在文本文件的每一行)。
这是代码:
int main(int argc, char *argv[])
{
int fd, bytes_read;
char buf;
if((fd = open(argv[1], O_RDONLY)) == -1)
{
perror("open");
exit(EXIT_FAILURE);
}
do
{
if((bytes_read = read(fd, &buf, sizeof(buf))) == -1)
{
perror("read");
exit(EXIT_FAILURE);
}
printf("%c", buf);
}
while(bytes_read != 0);
close(fd);
}
谢谢!
答案 0 :(得分:0)
我不是肯定确定这是为什么,但可能是因为“非空的源文件应以换行符结尾,不得紧接着一个反斜杠字符。“
有关详细信息,请参阅http://robots.thoughtbot.com/no-newline-at-end-of-file/,这是一本有趣的读物。
答案 1 :(得分:0)
我发现代码中没有任何错误检查。你确定你真的成功打开了文件吗?您必须检查每个系统调用的返回值,并根据您的错误采取谨慎行动。
答案 2 :(得分:0)
尝试在循环后的某处添加fflush(stdout);
。
输出流可能是行缓冲的。