Запись данных в файл в одну строку - C (СИ)
Формулировка задачи:
Подскажите, пожалуйста, при записывании в файл трех параметров(название книги, автор и год) через FILE* данные записываются очень далеко друг от друга в одну колонку(около 100 пустых строк между ними)
Возможно ли сделать так, чтобы данные записывались в строку (назв, автор, год) а следующие данные записывались ниже?
FILE* fp = fopen ("text.txt", "w");
fwrite(&books[0], sizeof(tag_book), 1,fp);
fclose(fp);
for (int j=1; j< N; j++)
{
fp = fopen ("text.txt", "a");
fwrite(&books[j], sizeof(tag_book), 1,fp);
fclose(fp);
}Решение задачи: «Запись данных в файл в одну строку»
textual
Листинг программы
for (int j=1; j< N; j++)
{
fp = fopen ("carsmy.txt", "ab");
fwrite(&autos[j], sizeof(autos), 1,fp);
fclose(fp);
}
Объяснение кода листинга программы
- Создается файл
carsmy.txtили открывается уже существующий файл с таким названием в режиме добавления (ab). - В цикле происходит запись данных из массива
autosв файлcarsmy.txt. - Каждый элемент массива
autosзаписывается в файл целиком, начиная с первого байта и заканчивая последним байтом, потому что функцияfwriteзаписывает данные в файл, как они есть, без изменений. - После записи данных в файл, файл закрывается.
- Цикл повторяется для каждого элемента массива
autos, начиная со второго и заканчивая N-ым.