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