Функция, которая считывает данный файл и перезаписывает его без отрицательных чисел - C (СИ)
Формулировка задачи:
Задания: Есть файл, в котором записаны числа массива
написать функцию, которая считывает данный файл и перезаписывает данный файл таким образом, чтобы там не было отрицательных чисел. У меня не выходит записать без отрицательных цыфр. Подскажите как это сделать
Мое решение:
Листинг программы
- void Ex()
- {
- FILE* fileInput = fopen("D:\\file.txt", "r");
- if (fileInput == nullptr)
- return;
- FILE* fileOutput = fopen("D:\\file.txt", "w");
- if (fileOutput == nullptr)
- {
- fclose(fileInput);
- return;
- }
- while (true)
- {
- int ch = fgetc(fileInput);
- if (ch == EOF)
- break;
- else
- fputc(ch, fileOutput);
- }
- fclose(fileOutput);
- fclose(fileInput);
- }
- int main()
- {
- Ex();
- return 0;
- }
Решение задачи: «Функция, которая считывает данный файл и перезаписывает его без отрицательных чисел»
textual
Листинг программы
- void Ex()
- {
- FILE* fileInput = fopen("D:\\file4.txt", "r");
- if (fileInput == nullptr)
- return;
- int number = 0;
- int* array = (int*)malloc((sizeof(array) / sizeof(int)) * sizeof(int));
- while (true)
- {
- int number;
- if (fscanf(fileInput, "%d", &number) == EOF)
- break;
- else
- {
- printf("Read number: %d", number);
- }
- }
- fclose(fileInput);
- FILE* fileOutput = fopen("D:\\file4.txt", "w");
- if (fileOutput == nullptr)
- {
- fclose(fileInput);
- return;
- }
- while (number > 0)
- {
- ++number;
- printf("%d", array[number]);
- }
- fclose(fileOutput);
- fclose(fileInput);
- }
- int main()
- {
- Ex();
- return 0;
- }
Объяснение кода листинга программы
- Объявлена функция
Ex()
. - В функции
Ex()
открывается файлfile4.txt
для чтения с помощьюfopen(
D:\file4.txt,
r)
. - Выделяется память под массив целых чисел с помощью
malloc((sizeof(array) / sizeof(int)) * sizeof(int))
. - Запускается бесконечный цикл, в котором считывается каждое число из файла с помощью
fscanf(fileInput,
%d, &number)
. - Если число равно EOF, то цикл прерывается.
- Число выводится на экран с помощью
printf(
Read number: %d, number)
. - Закрывается файл
fileInput
с помощьюfclose(fileInput)
. - Открывается файл
file4.txt
для записи с помощьюfopen(
D:\file4.txt,
w)
. - Если файл не удалось открыть, то закрывается файл
fileInput
и возвращается значение EOF. - Запускается цикл, в котором числа из массива выводятся на экран с помощью
printf(
%d, array[number])
. - Увеличивается значение переменной
number
на 1 с помощью++number
. - Функция
Ex()
возвращает 0. - В функции
main()
вызывается функцияEx()
. - Возвращается значение 0.
- Программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д