Функция, которая считывает данный файл и перезаписывает его без отрицательных чисел - 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.
- Программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д