Изменить/дополнить готовый код. Каждый 5-ый символ заменить на символ "№" - C (СИ)
Формулировка задачи:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#pragma hdrstop
//---------------------------------------------------------------------------
#pragma argsused
int main(int argc, char* argv[])
{
FILE *fileIn, *fileOut; /* Объявл.файлы */
int iCharCount = 0; /* Счетчик=0 */
fileIn = fopen("Input.txt", "rt"); /* Открытие Вх. */
if (fileIn == NULL) { /* Удачно? */
fprintf(stderr, "Cannot open input file.\n"); /* нет- Ошибка */
return 1; /* Возврат */
}
fileOut = fopen("Output.txt", "wt"); /* Открытие Вых.*/
if (fileOut == NULL) { /* Удачно? */
fclose(fileIn); /* нет- Закр.Вх.*/
fprintf(stderr, "Cannot open output file.\n"); /* Ошибка */
return 1; /* Возврат */
}
while (!feof(fileIn)) { /* Цикл чтения */
char cChar = fgetc(fileIn); /* Чтение символ*/
if(strchr("0123456789",cChar)) iCharCount++; /* Подсчет */
//if(strchr("0123456789",cChar)) cChar = '#'; /* Замена */
fputc(cChar, fileOut); /* Вывод */
}
fclose(fileIn); /* Закрытие Вх. */
fclose(fileOut); /* Закрытие Вых.*/
/* Вывод рез. */
fprintf(stdout, "Chislo simvolov \'0-9\' ravno %d\n",iCharCount);
// getch();
system("PAUSE");
return 0;
}Решение задачи: «Изменить/дополнить готовый код. Каждый 5-ый символ заменить на символ "№"»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char* argv[])
{
FILE* fileIn, *fileOut; /* Объявл.файлы */
int iCharCount = 0; /* Счетчик=0 */
fileIn = fopen("Input.txt", "rt"); /* Открытие Вх. */
if (fileIn == NULL) /* Удачно? */
{
fprintf(stderr, "Cannot open input file.\n"); /* нет- Ошибка */
return 1; /* Возврат */
}
fileOut = fopen("Output.txt", "wt"); /* Открытие Вых.*/
if (fileOut == NULL) /* Удачно? */
{
fclose(fileIn); /* нет- Закр.Вх.*/
fprintf(stderr, "Cannot open output file.\n"); /* Ошибка */
return 1; /* Возврат */
}
while (!feof(fileIn)) /* Цикл чтения */
{
char cChar = fgetc(fileIn); /* Чтение символ*/
if (++iCharCount == 5)
{
iCharCount = 0;
cChar = '№';
}
fputc(cChar, fileOut); /* Вывод */
}
fclose(fileIn); /* Закрытие Вх. */
fclose(fileOut); /* Закрытие Вых.*/
/* Вывод рез. */
system("PAUSE");
return 0;
}
Объяснение кода листинга программы
- Входной файл считывается до конца.
- Для каждого пятого символа входного файла заменяется на символ
№. - Результат выводится в выходной файл.
- Входной и выходной файлы закрываются.
- Выполняется команда паузы.
- Возвращается код завершения программы.