Не сравнивает строки, введенные вручную и считанные из файла - C (СИ)
Формулировка задачи:
Создал массив чар - туда спихиваю считанное из потока.
Создал пойнтер и присвоил ему поток.
с помощью функции fgets считал из файла строку длинной 8 знаков (ol 7878)
Проверил равна ли считанная строка себе самой. Итог - не равна.
В чём там может быть дело ?
char sliv[256]; FILE* fp = fopen("a/BINT.txt", "r"); printf("%s\n", fgets(sliv, 8, fp)); if(fgets(sliv, 8, fp) == "ol 7878") printf("ИТОГ\n"); fclose(fp);
Решение задачи: «Не сравнивает строки, введенные вручную и считанные из файла»
textual
Листинг программы
char* assa = "ol 7878"; char sliv[256]; FILE* fp = fopen("a/BINT.txt", "r"); if(strcmp(fgets(sliv, 8, fp), assa) == 0) printf("%d", strcmp(fgets(sliv, 8, fp), assa) ); fclose(fp);
Объяснение кода листинга программы
- Объявляется указатель на строку
assa
и присваивается значениеol 7878
. - Объявляется массив символов
sliv
размером 256. - Открывается файл
a/BINT.txt
для чтения с помощью функции fopen. - В случае, если строка, прочитанная из файла с помощью функции fgets и сохраненная в
sliv
, равнаassa
, то выводится значение функции strcmp, которая сравнивает строки. - Функция fclose закрывает файл.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д