В чем ошибка программы?
Задача заключается в том, что нужно создать файл из 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");
}
