私は久しぶりにCに飛び込み、構造体を単純なテキストファイルに読み書きするのに苦労しています。このプログラムをデバッグしたところ、ファイルのガベージ値を読み書きしていることがわかりました。誰かが私を助けることができますか?これが私のコードです
#define MAX_UserName_LEN 16
#define MAX_Password_LEN 8
#define MAX_FileName_LEN 32
struct userDetails
{
char userName[MAX_UserName_LEN];
char password[MAX_Password_LEN];
};
int registration(struct userDetails userInfo)
{
FILE *userDb;
userDb= fopen("UserDataBase.txt","a");
if(fwrite(&userInfo,sizeof(userInfo),1,userDb))
{
fclose(userDb);
return 1;
}
else
{
return 0;
}
}
int authenicate(struct userDetails userInfo)
{
FILE *userDb;
struct userDetails temp;
userDb = fopen("UserDataBase.txt","r");
while(!feof(userDb))
{
fread(&temp,sizeof(temp),1,userDb);
if (temp.userName==userInfo.userName && temp.password==userInfo.password)
{
printf("Logged In Sucessfully");
return 1;
}
}
return 0;
}
メイン関数では、1 つの構造体変数を宣言し、その構造体へのユーザー入力を受け入れ、それを上記の両方の関数に渡します。