Я пытаюсь создать простую банковскую программу, и я пытаюсь получить часть депозита для работы, я использую текстовый файл для хранения информации, такой как номер учетной записи, имя и фамилия владельца счета и баланс на счете.Вариант депозита банковского счета с использованием текстового файла в C
Я пытаюсь сделать здесь, чтобы заставить пользователя ввести номер учетной записи, который затем откроет существующий файл Bank.txt и проверьте, есть ли соответствующий номер учетной записи. если есть программа, то попросите пользователя ввести значение для внесения депозита, а если нет, то программа просто сообщит пользователю, что номер учетной записи не существует.
Проблема заключается в том, что когда я впервые запускаю программу и создаю учетную запись, все работает нормально, но как только я закрою программу и снова ее закрою, она не найдет соответствующий номер учетной записи в файле, даже если она уже существует.
Полный код ниже:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include<conio.h>
#define SIZE 10 000
#define NAME_LEN 60
#define MAX_ACCOUNT 1000
struct bank
{
int account_number;
char first_name[NAME_LEN+1];
char last_name[NAME_LEN+1];
float accountBalance;
} enter;
void create();
/*void searchAccounts();
void viewAccounts();
void sortAccounts();
void withdraw();
void deposit();
void Account_Balance();
void Account_eliminate();
*/
int main(void)
{
int ch;
while(1)
{
printf("\t\t\t Welcome to KTH Elektro Bank! \n \t\t Please select your options form the menu below 1-9\n\n");
printf("\t\t 1 : Create Account\n");
printf("\t\t 2 : Search Accounts\n");
printf("\t\t 3 : View Accounts\n");
printf("\t\t 4 : Sort Accounts\n");
printf("\t\t 5 : Deposit \n");
printf("\t\t 6 : Withdraw \n");
printf("\t\t 7 : Check Balance \n");
printf("\t\t 8 : Delete Account \n");
printf("\t\t 9 : Exit \n\n");
printf("\t\t please enter choice : ");
scanf("%d", &ch);
switch(ch)
{
case 1: create();
break;
/* case 2: searchAccounts();
break;
case 3: viewAccounts();
break;
case 4: sortAccounts();
break;*/
case 5: deposit();
break;/*
case 6: withdraw();
break;
case 7: Account_Balance();
break;
case 8: Account_eliminate();
break;*/
case 9: exit(0);
default: printf("\t\tEnter 1-9 Only");
getch();
}
}
}
void create()
{
FILE *originalFile = fopen("Bank.txt","w");
printf("\n\t\t Account Creation Page\n");
printf("\t\t Enter Desired Account Number Minimum 6 Digits! : ");
scanf("%d", &enter.account_number);
printf("\t\t Enter Your First Name : ");
scanf("%s", enter.first_name);
printf("\t\t Enter Your Last Name : ");
scanf("%s", enter.last_name);
printf("\t\t Your balance is by default set to 0 KR \n\n");
enter.accountBalance = 0;
fprintf(originalFile,"\n Account Number : %d \n First Name : %s \n Last Name : %s \n Balance : %f", enter.account_number,enter.first_name, enter.last_name, enter.accountBalance);
fclose(originalFile);
getch();
}
void deposit()
{
printf("\n\t\t Deposit Page\n");
int acc_no;
printf("\t\t Enter The Account Number of the Account \n\t\t You Would Like To Deposit To : ");
scanf("%d", &acc_no);
FILE *originalFile = fopen("Bank.txt", "r");
FILE *newFile = fopen("BankTemp.txt", "w");
fscanf(originalFile, "Account Number : %d", enter.account_number);
fscanf(originalFile, "Account Holder First Name : %s", enter.first_name);
fscanf(originalFile, "Account Holder Last Nam : %s", enter.last_name);
fscanf(originalFile, "Balance : %f", enter.accountBalance);
if (acc_no == enter.account_number)
{
float balance;
printf("\n\t\t Enter The Amount You Would Like To Deposit : ");
scanf("%f", &balance);
enter.accountBalance = balance + enter.accountBalance;
fprintf(newFile, "\n Account Number : %d \n First Name : %s \n Last Name : %s \n Balance : %f", enter.account_number, enter.first_name, enter.last_name, enter.accountBalance);
fclose(newFile);
fclose(originalFile);
remove("Bank.txt");
rename("BankTemp.txt", "Bank.txt");
}
if(acc_no != enter.account_number)
{
printf("\t\t Account Number Doesn't Exist\n");
fclose(originalFile);
fclose(newFile);
remove("BankTemp.txt");
}
}
Добавить много результатов регистрации в вашу программу, чтобы вы могли видеть, где это происходит. Или используйте отладчик. –