Все нули в файле заменить единицами, а единицы нулями - C (СИ)
Формулировка задачи:
помогите переделать текст этой задачи с Паскаля на язык С
Ввести файл F . Все нули в файле заменить единицами, а единицы нулями. Файл вывести до и после преобразования Код Pascaluses crt; var f:file of byte; i,a:byte; begin randomize; assign(f,'file'); rewrite(f); for i:=1 to 20 do begin a:=random(5); write(f,a) end; writeln('Содержание исходного файла'); seek(f,0); for i:=0 to filesize(f)-1 do begin seek(f,i); read(f,a); write(a:3); if a in [0..1] then a:=1-a; seek(f,i); write(f,a); end; writeln(''); writeln('Содержание измененного файла'); seek(f,0); for i:=0 to filesize(f)-1 do begin read(f,a); write(a:3); end; close(f);
Решение задачи: «Все нули в файле заменить единицами, а единицы нулями»
textual
Листинг программы
#include<stdio.h> #include<time.h> #include<stdlib.h> void main(void) { FILE *f; char i,a; long int filesize; srand(time(NULL)); f = fopen("C:\\file", "w+"); for (i = 1; i <= 20; i++){ a = rand() % 6;//от нуля до 5 fprintf(f, "%c", a); }; fflush(f); printf("Содержание исходного файла\n"); //мы находимся в конце файла, значит размер файла это его текущая позиция ftell filesize = ftell(f); fseek(f, 0, SEEK_SET); for (i = 0; i <= filesize - 1; i++) { fseek(f, i, SEEK_SET); fscanf(f, "%c", &a); printf("%3i", a); if ((a == 0) || (a == 1)) a = 1 - a; fseek(f, i, SEEK_SET); fprintf(f, "%c", a); }; printf("\n"); printf("Содержание измененного файла\n"); fseek(f, 0, SEEK_SET); for (i = 0; i <= filesize - 1; i++) { fscanf(f, "%c", &a); printf("%3i", a); }; fclose(f); };
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы
- Объявляем переменные: FILE *f, char i, a, long int filesize
- Инициализируем генератор случайных чисел
- Открываем файл
C:\\file
в режиме записи и чтения - Записываем в файл 20 символов, сгенерированных случайным образом от 0 до 5
- Перемещаем позицию файла в начало
- Читаем файл посимвольно и если символ равен 0 или 1, то меняем его на противоположный
- Закрываем файл
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д