В конце каждой строки вставить заданный символ - C (СИ)
Формулировка задачи:
Написать программу, выполняющую посимвольную обработку текстового файла (табл. 8). Ввод параметров организовать в командной строке запуска программы.
табл.8 В конце каждой строки вставить заданный символ 1.1. Имя входного файла 2.2. Заданный символ
Надеюсь на понимание. Спасибо!
Решение задачи: «В конце каждой строки вставить заданный символ»
textual
Листинг программы
#include <stdbool.h> #include <stdio.h> static void usage(const char programName[ ]) { printf( "Usage:\n" " %s <input-file> <character-to-append>\n", programName ); } int main(int argc, char* argv[ ]) { if (argc != 3) { usage(argv[0]); return 2; } if (!argv[2][0] || argv[2][1]) { fputs("Second argument must be a single character!\n", stderr); usage(argv[0]); return 1; } FILE* f = fopen(argv[1], "rb"); if (!f) { fprintf(stderr, "Cannot open '%s'\n", argv[1]); return 1; } int c; bool cr = false, newline = false; while (c = getc(f), c != EOF) { if (c == '\r') { cr = newline = true; putchar(argv[2][0]); } else if (cr) { cr = false; newline = c == '\n'; } else { newline = c == '\n'; if (newline) putchar(argv[2][0]); } putchar(c); } fclose(f); if (!newline) putchar(argv[2][0]); return 0; }
Объяснение кода листинга программы
- Программа добавляет символ в конец каждой строки файла.
- Если файл не открыт, программа выводит сообщение об ошибке и завершает работу с кодом 1.
- В цикле while программа считывает каждый символ из файла.
- Если символ является символом новой строки (\r), программа устанавливает флаг cr и флаг newline в true и выводит символ, указанный во втором аргументе.
- Если флаг cr установлен, программа выводит символ, указанный во втором аргументе, и сбрасывает флаг cr.
- Если флаг newline установлен, программа выводит символ, указанный во втором аргументе.
- Если файл открыт, программа считывает каждый символ до конца файла.
- Если файл не найден, программа выводит сообщение об ошибке и завершает работу с кодом 1.
- Программа закрывает файл.
- Если флаг newline не установлен, программа выводит символ, указанный во втором аргументе.
- Программа завершает работу с кодом 0.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д