У меня есть задание о работе с файлом о создании банковских счетов, после чего он сообщает вам ввести номер счета, имя, контактный и начальный баланс. Моя программа работает, но она печатает неправильно в файле. Что мне делать?Ошибка обработки файла fprintf
Программа:
#include<stdio.h>
#include<conio.h>
#include<windows.h>
#include<ctype.h>
struct accacc
{
char accno[5];
char accna[50];
int accpin[4];
int accba;
};
main()
{
FILE *fp;
struct accacc acc;
char ch;
char t[5];
fp=fopen("Accounts.txt","a");
printf("ENTER ACCOUNT NUMBER:\t");
gets(acc.accno);
printf("ENTER ACCOUNT NAME:\t");
scanf("\n");
gets(acc.accna);
printf("ENTER ACCOUNT PIN:\t");
scanf("%d",&acc.accpin);
printf("ENTER INITIAL BALANCE:\t");
scanf("%d",&acc.accba);
printf("CREATE ANOTHER ONE?:\t");
scanf(" %c",&ch);
fprintf(fp,"%s\t%s\t%d\t%d",acc.accno,acc.accna,acc.accpin,acc.accba);
if(toupper(ch)=='Y')
{
do
{
system("cls");
printf("ENTER ACCOUNT NUMBER:\t");
scanf("\n");
gets(t);
if(strcmp(acc.accno,t)==0)
{
printf("ACCOUNT ALREADY EXISTS!");
}
else
{
printf("ENTER ACCOUNT NAME:\t");
scanf("\n");
gets(acc.accna);
printf("ENTER ACCOUNT PIN:\t");
scanf("%d",&acc.accpin);
printf("ENTER INITIAL BALANCE:\t");
scanf("%d",&acc.accba);
printf("CREATE ANOTHER ONE?:\t");
scanf(" %c",&ch);
fprintf(fp,"%s\t%s\t%d\t\t%d\t\n",t,acc.accna,acc.accpin,acc.accba);
}
}while(toupper(ch)=='Y');
}
else
{
fclose(fp);
}
getch();
}
примечание 'accpin' - это массив' int'. – BLUEPIXY
Вам действительно нужно научиться отступывать свой код. То, что вы отправили, - это кошмар. –
Просьба представить данные о вашем вводе, выводе и ожидаемом выходе. Не используйте 'gets', используйте' fgets'. –