В чем ошибка программы?

Задача заключается в том, что нужно создать файл из 20 случайных чисел разного знака и выбрать из него во второй файл все положительные числа. Но компилятор выводит это(на скриншоте) Вот код:

void CreateFile(const char* name, int n, int d) {
    int x, i;
    FILE* f;
    fopen_s(&f, name, "w");
    if (f == NULL) {
        puts("error opening file");
    }
    else {
        for (i = 0; i < n; i++) {
            x = rand() % d-100;
            fprintf(f, "%d ", x);
        }
        fclose(f);
    }
}

void PrintFile(const char* name) {
    int x;
    FILE* f;
    fopen_s(&f, name, "r");
    if (f == NULL) {
        puts("error");
        exit(-1);
    }
    else {
        fscanf_s(f, "%d", &x);
        while (!feof(f)) {
            printf("%d ", x);
            fscanf_s(f, "%d ", &x);
        }
        fclose(f);
    }
}

int main() 
{
    FILE* f, * g;
    int n, d, x;
    bool test;
    puts("enter n");
    scanf_s("%d", &n);
    puts("enter d");
    scanf_s("%d", &d);
    CreateFile("Base1.txt", n, d);
    PrintFile("Base1.txt");
    puts("");
    fopen_s(&f, "Base1.txt", "r");
    fopen_s(&g, "Base2.txt", "w");
    if (f == NULL || g == NULL)
    {
        puts("error openning file");
        system("pause");
        exit(-1);
    }
    fscanf_s(f, "%d", &x);
    while (!feof(f))
    {
        if (x>0) fprintf_s(g, "%d", x);
        fscanf_s(f, "%d", &x);
    }
    fclose(f);
    fclose(g);
    puts("file of even number:"); PrintFile("Base2.txt");
    system("pause");
}

введите сюда описание изображения


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