我刚开始学习 C 语言,需要有关特定程序的帮助。我需要从一个文件中读取行(一次大约 50 个字节)并将它们复制到一个新文件中,包括二进制文件。这很简单,但我不知道应该怎么做。到目前为止我有
while ( ) {
read (infile, buffer, 50);
if (r< 0) {
perror("cannot read infile");
exit (-1);
}
if (r==0) {
break;
}
write (outfile, buffer, r);
}
虽然我已经打开和关闭了我需要的文件。循环应该一次读取文件 50 个字节并将它们写入一个新文件,但我不确定 while 循环的条件应该是什么。我当时在想,也许可以获取文件中的字节数并制作它,这样只要还有更多字节,它就会循环遍历文件。但是,我不完全确定该怎么做。对正确方向有帮助吗?
最佳答案
需要捕获read
的返回值:
r = read (infile, buffer, 50);
考虑到循环的设置方式,您可以使用始终为真的条件:while(1)
(因为您已经在到达文件末尾时中断)
关于将输入文件、二进制和 ASCII 文件复制到新文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19285469/