Работа с бинарным файлом - на вывод поступает мусор - C (СИ)
Формулировка задачи:
Есть структуры вида
Я ввожу данные с клавиатуры и добавляю в структуру.
Далее вывожу данные в бинарный файл:
И потом из двоичного файла вывожу данные на экран:
Проблема в том, что когда вывожу из бинарного файла выводится какая-то чушь вида "ММММММММММММММММММёяы -85556137"
Помогите найти ошибку.
Заранее спасибо.
struct Note { char date[20]; int temp; struct Note *next; }; struct Pointer { Note * first; Note * last; };
void vyvod_bin(struct Pointer &P) { FILE *f; char bin[] = "binary.txt"; if (!P.first) printf("Error"); else { Note *tmp = P.first; f = fopen(bin, "w+"); if (f == NULL) printf("Error"); else { while (tmp) { fwrite(&tmp->date, sizeof(tmp->date), 1, f); fwrite(&tmp->temp, sizeof(tmp->temp), 1, f); tmp=tmp->next; } } fclose(f); } }
void add_to_end2(struct Pointer &P) { char date[20]; int temp; FILE *f; char bin[] = "binary.txt"; f = fopen(bin, "wb+"); while (!feof(f)) { fread(&date, sizeof(date), 1, f); fread(&temp, sizeof(temp), 1, f); printf("%s %d", date, temp); } fclose(f); }
С выводом из файла разобрался, нужно было поменять режим файла.
Появилась другая проблема: при выводе из файла последний элемент выводится дважды. И вроде бы понятно, что раз выводится два раза, то, скорее всего, в конце текстового файла присутствует пробел. Так и есть, но я не понимаю, откуда он там взялся и как его убрать. Или вовсе не в пробеле дело
Разобрался, не актуально
Решение задачи: «Работа с бинарным файлом - на вывод поступает мусор»
textual
Листинг программы
if (strcmp(date, "") != 0)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д