Как записать в другой файл числа (два положительных, затем два отрицательных)?

Есть два файла в первом положительные числа, во втором отрицательные.

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <stdio.h>
#include <Windows.h>

int sozd()
{
    FILE* fp;
    fp = fopen("file1.txt", "w");
    int a, i, n;
    if (fp == NULL)
    {
        return 1;
    }
    printf("Введите количество чисел n:  ");
    scanf("%d", &n);
    fscanf(fp, "%d ", &n);
    printf("\nВведите %d чисел: ", n);
    for (i = 0; i < n; i++)
    {
        scanf("%d", &a);
        fprintf(fp, "%d ", a);
    }
    printf("\n");
    fclose(fp);

    return 0;
}


int read()
{
    FILE* fp;
    FILE* gp;
    FILE* pp;
    int a, zero, num, neg, n;
    fp = fopen("file1.txt", "r");
    gp = fopen("file2.txt", "w");
    pp = fopen("file3.txt", "w");
    while (fscanf(fp, "%d", &a) == 1)
    {
        if (a > 0)
        {
            fprintf(gp, "%d ", a);
            zero = 0;
            fprintf(fp, "%d ", zero);
        }
        else 
        {
            fprintf(pp, "%d ", a);
        }
    }
    fclose(fp);
    fclose(gp);
    fclose(pp);

    gp = fopen("file1.txt", "rt+");
    pp = fopen("file2.txt", "rt");
    fp = fopen("file3.txt", "r");
    // 
    fclose(gp);
    fclose(pp);

    return 0;
}

int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    setlocale(LC_ALL, "Russian");
    FILE* fp;
    FILE* gp;
    FILE* pp;
    pp = fopen("file1.txt", "r");
    gp = fopen("file2.txt", "r");
    fp = fopen("file3.txt", "r");
    int a, i, n, j;
    sozd();
    read();
    // вывод
    printf("Файл f:");
    while (fscanf(fp, "%d", &a) == 1)
    {
        printf("%d ", a);
    }
    printf("\n");
    printf("Файл g:");
    while (fscanf(gp, "%d", &a) == 1)
    {
        printf("%d ", a);
    }
    printf("\n");
    printf("Файл p:");
    while (fscanf(pp, "%d", &a) == 1)
    {
        printf("%d ", a);
    }
    fclose(fp);
    fclose(gp);

    return 0;
}

Ответы (0 шт):