Задача, прочитать текстовые данные из файла и записать их в другой, вроди все ок, но в конце дописывает какие-то крякозябли. ( подозреваю что это из-за размера буфера buf ), следовательно вопрос - как изменять размер буфера в соответствии с кол-вом инф-ии во входном файле?#include <stdio.h>
int main(void)
{
FILE *stream;
FILE *stream2;
char buf[200]; // тут размер буфера указывается
//read data from file
if ((stream = fopen("data.in", "r")) //читаю файл
== NULL)
{
fprintf(stderr, "Cannot open output file.\n");
return 1;
}
fread(buf, 200, 1, stream);
printf( "%s", buf ); //все ок, распечатывает то что надо
//write data to another file
if ((stream2 = fopen("data.out", "wb")) == NULL)
{
fprintf(stderr, "Cannot open output file.\n");
return 1;
}
fwrite(buf, sizeof(buf)+1, 1, stream2); //пишет нормально, но в конце много мусора добавляет
fclose(stream2);
return 0;
}