【发布时间】:2016-07-05 03:21:26
【问题描述】:
我想将 file1 的内容原样复制到 file2(保留空格和换行符)。我特别想一次复制这些内容一小块字符(这是一个较大项目的一小部分,请耐心等待)。
我尝试了以下方法:
#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);
}
但是,这会导致我的 file2 输出不正确。任何意见将不胜感激。
【问题讨论】:
-
getc(和getchar、fgetc)返回intnotchar。int c -
这不是通过使用
(char) c进行类型转换“修复”的吗?