При использовании функции fgets () и вводе абсолютно правильного имени файла программа не может открыть файл - C (СИ)
Формулировка задачи:
Прошу прощение за беспокойство и за глупый вопрос, но вoобщем проблема такая:
Программа определяет существует ли в текущей директории файл с именем введённым пользователем.
При использовании функции fgets() и вводе абсолютно правильного имени файла программа не может открыть файл, но если использовать gets() всё успешно открывается. Использую компилятор MinGW.
Был бы признателен и премного благодарен, тому кто поможет разобраться.
#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 () и вводе абсолютно правильного имени файла программа не может открыть файл»
textual
Листинг программы
void chomp(char* str) { while( *str ) { if( *str == '\n' ) { *str = '\0'; break; } ++str; } }
Объяснение кода листинга программы
- В функции
chomp
определенный указатель на строкуstr
. - В цикле while происходит проход по всем символам строки
str
. - Если символ равен символу новой строки '\n', то этот символ заменяется на символ конца строки '\0' и из цикла выходится.
- Если символ не равен символу новой строки, то указатель на строку увеличивается на 1.
- Функция
chomp
предназначена для удаления символов новой строки из строки.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д