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

Объяснение кода листинга программы

  1. Объявляется указатель на строку assa и присваивается значение ol 7878.
  2. Объявляется массив символов sliv размером 256.
  3. Открывается файл a/BINT.txt для чтения с помощью функции fopen.
  4. В случае, если строка, прочитанная из файла с помощью функции fgets и сохраненная в sliv, равна assa, то выводится значение функции strcmp, которая сравнивает строки.
  5. Функция fclose закрывает файл.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.818 из 5
Похожие ответы