我希望将file1的内容完全复制到file2中(包括空格和换行符)。我需要逐个小块地复制这些内容(这是一个更大项目的一部分,请耐心等待)。
我尝试了以下方法:
然而,这会导致我文件2的输出不正确。欢迎提供任何意见。
我尝试了以下方法:
#include <stdio.h>
#include <stdlib.h>
#define MAX 5
int main(int argc, char *argv[]) {
FILE *fin, *fout;
char buffer[MAX];
int length;
char c;
if((fin=fopen(argv[1], "r")) == NULL){
perror("fopen");
exit(EXIT_FAILURE);
}
if((fout=fopen(argv[2], "w")) == NULL){
perror("fopen");
exit(EXIT_FAILURE);
}
while(1){
length = 0;
while((c = fgetc(fin)) != EOF && length < MAX){
buffer[length++] = (char) c;
}
if(length == 0){
break;
}
fprintf(fout, "%s", buffer);
}
fclose(fout);
fclose(fin);
}
然而,这会导致我文件2的输出不正确。欢迎提供任何意见。
getc
(以及getchar
、fgetc
)返回的是int
而不是char
。**int c
**。 - Antti Haapala -- Слава Україні(char) c
进行类型转换来“固定”吗? - user4332327