Я хочу скопировать содержимое файла1 в файл2 точно так же, как и они (сохранение пробелов и символов перевода строки). Я специально хочу скопировать это содержимое на один маленький блок символов одновременно (это небольшой сегмент крупного проекта, так что несите меня).Прочитать блок файла по блоку в C
я попытался следующее:
#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') возвращает [**' int' ** not ** 'char' **] (http://stackoverflow.com/questions/35356322/difference- между-ИНТ-и-гольца-в-GetChar-и-putchar). ** 'int c' ** –
- это не« фиксировано »при помощи typginging с помощью' (char) c'? –
http://stackoverflow.com/questions/35356322/difference-between-int-and-char-in-getchar-and-putchar –