chintoi
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Пожалуйста, помогите. Задача написать поиск в базе словаря. Пока все на ранней стадии, но я запоролся на считывании из файла, дальше сам справлюсь. Проблема: для считывания использую fgets и fscanf, и на них программа произвольно вылетает база выглядит так: index0.txt a <int адрес_на_список_слов_на_а_в_INDEX1> b <int адрес_на_список_слов_на_b_в_INDEX1> ... index1.txt apple <int адрес_перевода_apple_в_DATA> <int байт_перевода_apple_в_DATA> melon <int адрес_перевода_melon_в_DATA> <int байт_перевода_melon_в_DATA> ... код: void main() { long int pointer0, pointer1,entrysize; char *word, *match0, *match1, *entry, *tempstr; FILE *index0, *index1, *data; word="test"; index0 = fopen("index0.txt", "r"); while(!feof(index0)) //для начала найти хоть совпадение первого символа в index0 { fgets(match0,50,index0); if(word[0]==match0[0]){cout<<"OK!!";break;} } fscanf(index0,"%d",&pointer0); //считываем, байтовый адрес в index0, начиная с которого слова начинаются на нужную букву fclose(index0); index1 = fopen("index1.txt", "r"); fseek(index1, pointer0,SEEK_SET); //выходим на этот адрес fgets(match1,79,index1); //считываем первое слово на заданную букву fscanf(index1,"%d",&pointer1); //считываем, байтовый адрес в data, где начинается перевод fscanf(index1,"%d",&entrysize); //считываем, длину перевода fclose(index1); //собственно, дальше дело не заходило // data = fopen("data.txt", "r"); // fclose(data); printf("%s %d",match0,pointer0); printf("\n%s %d",match1,pointer1); getch(); } Хотелось бы узнать в чем моя ошибка или узнать про альтернативыне функции |