пользовательский ввод не сохраняется в файл - PullRequest
0 голосов
/ 07 апреля 2020

поэтому я создал 2 текстовых файла, в которых могут храниться мои данные о пользователях и сотрудниках соответственно, но мои данные не сохраняются, но код работает отлично. Это мой код

FILE *usr;
FILE *staf;
usr = fopen("users.txt","a+");
staf = fopen("staff.txt","a+");
char choice;

// some data to be collected

if (choice == 's')
{
fscanf(staf,"staffs: %d/%d/%d %s %s %s %s %d\n ",add.month,add.day,add.year,add.name,add.staff.username,add.password,add.email,add.number);
    fprintf(staf,"staffs: %d/%d/%d %s %s %s %s %d\n ",add.month,add.day,add.year,add.name,add.staff.username,add.password,add.email,add.number);
    fclose(staf);
}
else if (choice == 'u')
{
fscanf(usr,"staffs: %d/%d/%d %s %s %s %s %d\n ",add.month,add.day,add.year,add.name,add.user.username,add.password,add.email,add.number);
    fprintf(usr," %d/%d/%d %s %s %s %s %d\n",add.month,add.day,add.year,add.name,add.user.username,add.password,add.email,add.number);
    fclose(usr);   
}
else
{
    goto personnel;
}

1 Ответ

0 голосов
/ 07 апреля 2020

Первые 3 замены вашего fprintf() не совпадают. %d используется для целых чисел, вы передаете указатель на него. Кроме того, я не знаю точно, но я сомневаюсь, что вы хотите напечатать указатель на файл. Однако, если вы это сделаете, используйте %p. Для получения дополнительной информации попробуйте man 3 printf.

...