Не сравнивает строки, введенные вручную и считанные из файла - 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 закрывает файл.