Итак, я просмотрел интернет и пару вопросов здесь, и я не смог найти ничего, что могло бы решить мою проблему здесь.У меня есть задание для программирования на C, чтобы написать программу, которая позволяет пользователю вводить слова в строку, добавлять больше слов, помещать все слова в строке в текстовый файл, удалять все слова в строке, и при выходе из нее сохраняетслова в двоичном виде, которые загружаются при повторном запуске программы.Я получил все, чтобы работать, за исключением того, что касается двоичного файла.
Я сделал две функции: одна загружает файл bin при запуске программы, а другая сохраняет файл bin по окончании.Я не знаю, в каком, или если в обоих, проблема начинается.Но в основном я знаю, что это не работает правильно, потому что я получаю мусор в своем текстовом файле, если я сохраняю его в текстовом файле после того, как программа загружает файл bin в строку.Я точно знаю, что заставка текстового файла работает правильно.
Спасибо всем, кто нашел время, чтобы помочь мне, это был целый день!lol
Вот два фрагмента моих функций, кажется, что все остальное в моем коде работает, поэтому я не хочу разбивать этот пост всей программой, но если понадобится, я его поднимуЧтобы решить эту проблему.
SIZE - это константа 10000, соответствующая спецификации программы в 1000 слов.Но я не мог заставить это работать, даже прося только 10 элементов или 1, только чтобы очистить это до
void loadBin(FILE *myBin, char *stringAll) {
myBin = fopen("myBin.bin", "rb");
if (myBin == NULL) {
saveBin(&myBin, stringAll);
}//if no bin file exists yet
fread(stringAll, sizeof(char), SIZE + 1, myBin);
fclose(myBin); }
/
void saveBin(FILE *myBin, char *stringAll) {
int stringLength = 0;
myBin = fopen("myBin.bin", "wb");
if (myBin == NULL) {
printf("Problem writing file!\n");
exit(-1);
stringLength = strlen(stringAll);
fwrite(&stringAll, sizeof(char), (stringLength + 1), myBin);
fclose(myBin); }