Дан файл, содержащий текст. Переписать в другой файл этот текст через один символ - C (СИ)
Формулировка задачи:
Здравствуйте, нужна помощь с написанием кода.
Дан файл, содержащий текст. Переписать в другой файл этот текст через один символ (т.е. если в файл записано «привет»,
то в другой нужно записать «пие»).
Решение задачи: «Дан файл, содержащий текст. Переписать в другой файл этот текст через один символ»
textual
Листинг программы
//...
FILE * fin, * fout;
int c, flag = 1;
//открыть файлы, один на чтение, другой на запись
while ( ( c = fgetc(fin) ) != EOF ) {
if ( flag ) {
if ( fputc(c, fout) == EOF ) {
// сообщить об ошибке, выйти с ненулевым кодом завершения
}
}
flag = !flag;
}
// проверить на ошибки и закрыть файлы, вернуть 0, если успешно.
Объяснение кода листинга программы
- Открыть файлы, один на чтение, другой на запись
- Переменная
cинициализируется значением, полученным из функции fgetc(fin) - Переменная
flagинициализируется значением 1 - Запускается цикл while, который выполняется до тех пор, пока не будет достигнут конец файла (EOF)
- Внутри цикла проверяется значение переменной
flag - Если значение переменной
flagравно 1, то вызывается функция fputc(c, fout), которая записывает значение переменнойcв файл fout - Если при вызове функции fputc(c, fout) произошла ошибка (возвращает EOF), то выводится сообщение об ошибке и программа завершается с ненулевым кодом завершения
- Значение переменной
flagинвертируется (с помощью оператора !), т.е. при каждой итерации цикла значениеflagменяется с 1 на 0 и наоборот - После окончания цикла проверяется, были ли ошибки при работе с файлами
- Если ошибки были, то выводится сообщение об ошибке и программа завершается с ненулевым кодом завершения
- Если ошибок не было, то файлы закрываются с помощью функции fclose()
- Программа возвращает 0, что означает успешное выполнение