При использовании функции fgets () и вводе абсолютно правильного имени файла программа не может открыть файл - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Прошу прощение за беспокойство и за глупый вопрос, но вoобщем проблема такая: Программа определяет существует ли в текущей директории файл с именем введённым пользователем.
#include <stdio.h>
#include <stdlib.h>
 
int main() {
    FILE *input;                //объявление указателя на файл
    char file_name[256];    //объявление массива символов для хранения имени файла
    
    system("DIR");          
    printf("\n");
    fgets(file_name, 256, stdin);   //считывание имени файла
    
    input = fopen(file_name, "r");  
    
    if (input != NULL)          //проверка был ли файл успешно открыт
        printf("File is found");
    else
        printf("File not found");
    return 0;
}
При использовании функции fgets() и вводе абсолютно правильного имени файла программа не может открыть файл, но если использовать gets() всё успешно открывается. Использую компилятор MinGW. Был бы признателен и премного благодарен, тому кто поможет разобраться.

Решение задачи: «При использовании функции fgets () и вводе абсолютно правильного имени файла программа не может открыть файл»

textual
Листинг программы
void chomp(char* str)
{
    while( *str ) {
        if( *str == '\n' ) {
            *str = '\0';
            break;
        }
        ++str;
    }
}

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

  1. В функции chomp определенный указатель на строку str.
  2. В цикле while происходит проход по всем символам строки str.
  3. Если символ равен символу новой строки '\n', то этот символ заменяется на символ конца строки '\0' и из цикла выходится.
  4. Если символ не равен символу новой строки, то указатель на строку увеличивается на 1.
  5. Функция chomp предназначена для удаления символов новой строки из строки.

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


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

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

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