Страницы

Поиск по вопросам

четверг, 30 мая 2019 г.

не получается сделать аутентификацию с файлом в СИ

#include #include
main() { FILE *p; char buf_login[10]; char buf_stream[10]; puts("Login:"); scanf("%s",buf_login); printf("Your login is:%s
", buf_login); p=fopen("12.txt","rt"); fgets(buf_stream, 10, p); fclose(p); if (strcmp(buf_stream,buf_login)==0) { puts("OK"); } else { puts("error!"); }
}
Не получается пройти "аутентификацию". В файле 12.txt, к примеру, находится abcd. Компилирую, ввожу abcd и все равно выкидывает error! вместо ОК. Не могу понять, где ошибка. Вроде код правильный. Кодировка 12.тхт файла ASCII. Пишу в Borland 2.0, на виртуалке на Ubuntu.


Ответ

Ошибки могут быть две...
Если файл открывается для чтения, то в нем на самом деле не строка "abcd", а строка "abcd
"(с переводом строки). Убрать можно открыв сам файл в режиме редактирования и при помощи клавиш перемещения курсора и удаления убрать из файла последний непечатный символ (после символа "d"). У Вас должна получиться одна строка без перевода каретки. Файл не открывается, так как не находится в той же директории, откуда и запускается программа. Подтверждением открытия файла должен служить валидный указатель p. В своем коде Вы его не проверяете, но посмотрите хотя бы в отладчике. Хотя скорее всего, в случае отсутствия файла, программа вывалится с ошибкой.
Сам же код в принципе рабочий.

Комментариев нет:

Отправить комментарий