Как я могу исправить эту ошибку, не могу написать еще один файл в C - PullRequest
0 голосов
/ 12 декабря 2018

Итак, я пытаюсь заставить этот код работать, и он выдает мне ошибку.Я пытался найти его, но не смог найти ничего, чтобы заставить его работать.

Ошибка (активная) E0513 значение типа "errno_t" не может быть присвоено объекту типа "FILE *". Я получаю эту ошибку, и эту

Ошибка C2440 '=': не могупреобразовать из 'errno_t' в 'FILE *' ch11Program

Есть идеи, что здесь делать?

FILE *cfPtr;

cfPtr = fopen_s(&cfPtr,"client.txt", "w");
if ( cfPtr == NULL) {
    puts("File could not be opened");
}
else {
    puts("Enter the account, name, and balance.");
    puts("Enter E0F to end input.");
    printf("%s", "? ");

    unsigned int account;
    char name[30];
    double balance;

    scanf_s("%d%29s%lf", &account, name, &balance);

    while (!feof(stdin)) {
        fprintf(cfPtr, "%d %s %.2f\n", account, name, balance);
        printf("%s", "? ");
        scanf_s("%d%29s%lf", &account, name, &balance);
    }
    fclose(cfPtr);
}

1 Ответ

0 голосов
/ 12 декабря 2018

Вы не можете назначить fopen_s () для cfPtr, потому что они разных типов.Вместо этого попробуйте это:

FILE *cfPtr;
errno_t err;

err = fopen_s(&cfPtr,"client.txt", "w");
if ( err == NULL) {
    puts("File could not be opened");
}
else {
puts("Enter the account, name, and balance.");
puts("Enter E0F to end input.");
printf("%s", "? ");

unsigned int account;
char name[30];
double balance;

scanf_s("%d%29s%lf", &account, name, &balance);

while (!feof(stdin)) {
    fprintf(cfPtr, "%d %s %.2f\n", account, name, balance);
    printf("%s", "? ");
    scanf_s("%d%29s%lf", &account, name, &balance);
}
fclose(cfPtr);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...