При использовании функции 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предназначена для удаления символов новой строки из строки.