В файл записывается мусор - C (СИ)
Формулировка задачи:
Я запутался с записью в файл. Короче вот часть кода
В итоге в файле у меня мусор какой-то
int bufer[n]; //он заполнен числами
...
FILE *out;
if((out=fopen("text.txt", "w"))==NULL)
{
printf("Cannot open file.");
return 1;
}
fwrite(bufer, sizeof(int), n, out);
free(mas);
return 0;
a^@^@^@ ^@^@^@�^@^@^@ ^@^@^@�^@^@^@�^@^@^@�^@^@^@�^@^@^@�^@^@^@�^@^@^@ ^@^@^@q^@^@^@w^@^@^@e^@^@^@r^@^@^@t^@^@^@y^@^@^@�^@^@^@
Решение задачи: «В файл записывается мусор»
textual
Листинг программы
int bufer[n]; //он заполнен числами
...
FILE *out;
int jx;
if((out=fopen("text.txt", "wt+"))==NULL)
{
printf("Cannot open file.");
return 1;
}
for(jx=0;jx<n;jx++)
fprintf(out,"%d\n\r",buffer[jx]);
fclose(out);
return 0;
Объяснение кода листинга программы
- В начале кода объявлена массивная переменная
buffer[n], которая заполнена числами. - Далее, используется функция
fopenдля открытия файлаtext.txtв режиме записи (wt+). - Если файл не может быть открыт, выводится сообщение об ошибке и возвращается 1.
- Если файл успешно открыт, выполняется цикл
for, который проходит по всем элементам массиваbuffer. - Внутри цикла, используется функция
fprintfдля записи каждого элемента массива в файл, с указанием формата%d\n\rдля записи целого числа и символов новой строки. - После завершения цикла, файл закрывается с помощью функции
fclose. - В конце кода возвращается 0, что означает успешное выполнение программы.