Программа, над которой я работаю, создает файл (about.txt), который включает в себя раздел рекорда.Как читать переменную из файла
В строке 12 .txt является ...
Plain Text (без рекордов):
- with <0>
C:
fprintf(about,"-%s with <%ld>",highname,highscore);
мне нужно прочитать партитуру файл и тест, чтобы увидеть, если он больше текущего рекорда, прежде чем писать новый.
мне нужно ...
if(score > highscore)
highscore=score;
Единственная проблема заключается в том, как я могу получить от топ-лист файла.
Я провел некоторое исследование самостоятельно и уверен, что это намного проще, чем я делаю это, но когда я огляделся, я не смог найти способ сделать это.
спасибо. ///////////////////////////////// EDIT /////////////// ///////// Создание файла:
FILE *about;
fpos_t position_name;
fpos_t position_score;
...
fprintf(about,"\n\nHIGHSCORE:\n\n");
fprintf(about,"-");
fgetpos(about,&position_name);
fprintf(about,"%s",highname);
fprintf(about,"with");
fgetpos(about,&position_score);
fprintf(about,"%ld",highscore);
fclose(about);
...
Получение баллов:
FILE *about;
about = fopen("about.txt","r");
fseek(about,position_name,SEEK_SET);
fscanf(about,"%s",highname);
fseek(about,position_score,SEEK_SET);
fscanf(about,"%ld",highscore);
fclose(about);
Изменение переменных (примечание .. Топ-лист/highname являются глобальные переменные)
if(score >= highscore) //alter highscore
{
highscore = score;
highname = name;
puts("NEW HIGHSCORE!!!\n");
}
Я получаю сообщение об ошибке:
error: incompatible types when assigning to type 'char[3]' from type 'char'
На этой линии:
highname = name;
Имя/оценка/highname/Топ-лист объявлен здесь (в заголовочном файле):
char name[3];
char highname[3];
long score;
long highscore;
Что именно вы испытываете трудности с? Открытие файла, получение данных из него, чтение/синтаксический анализ текстовой строки после ее вставки, преобразование текста в числовое значение? Что-то другое? –
Вы должны использовать функцию fscanf. Он определен в той же библиотеке, что и fprintf. – Wug