При использовании функции 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
предназначена для удаления символов новой строки из строки.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д