我正在使用 C 中的简单代码(逐个字符)读取此文本文件:
This is the file
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);
}
谢谢!
最佳答案
我不确定这是否是原因,但这可能是因为“非空的源文件应以换行符结尾,该字符前面不应紧接着反斜杠字符。”
参见http://robots.thoughtbot.com/no-newline-at-end-of-file/要了解更多信息,这是一本有趣的读物。
关于无法使用系统调用 read 读取文本文件的最后一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20585386/