Затруднение при применении функции fgets - C (СИ)
Формулировка задачи:
Для того, чтобы считать имя файла и не выдалась ошибка при его открытии, мне пришлось применить следующую конструкцию:
Если я применяю gets,
Почему мне необходимо добавить нулевой символ для того, чтобы файл прочитался?
Если же я пользуюсь ничего не добавляющей в конец массива функцией gets для чтения имени файла, программа работает исправно. Почему так получается?
Также, интересует, по какой причине я не могу написать вот так:
Насколько я знаю, арифметические операции применимы внутри квадратных скобок массивов.
printf("Введите имя файла-источника\n"); fgets(name_in, MAX, stdin); name_in[strlen(name_in+1)] = '\0';
name_in[strlen(name_in)+1] = '\0';
Решение задачи: «Затруднение при применении функции fgets»
textual
Листинг программы
name_in[strlen(name_in) - 1] = '\0';
Объяснение кода листинга программы
- Сначала вводится строка с именем файла, используя функцию fgets.
- Затем вычисляется длина строки имени файла без учета символа новой строки, используя функцию strlen.
- Обнуляется последний символ строки, чтобы убрать символ новой строки, используя оператор индексации и присваивания.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д