My program is supposed to check credentials if the exist in the file created "MyDetails.txt", if yes, then allow the user to proceed else, terminate. However the program accepts any values passed to it and re-writes the existing data. I would like to find out what errors are in the code and if there is another alternative in solving it.(validating credentials within a file). Below is the code for the program.
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include <stdlib.h>
main()
{
FILE *Credentials;
char username[15];
char password[12];
//open file for writing
Credentials =fopen("MyDetails.txt","w");
//check if file exists
if(Credentials == NULL)
{
printf("File does not exist\n");
return;
}
//New User
printf("Enter Username\n");
scanf("%s",&username);
fprintf(Credentials,"Username:%s\n",username);
printf("Enter Password\n");
scanf("%s",&password);
fprintf(Credentials,"Password:%s\n",password);
if(username==username)
{
if(password=password)
{
printf("Login Successfull\n");
printf("\n");
float result;
int choice,num;
printf("Press 1 to Exit\n");
printf("Press 2 to Input Current Reading\n");
printf("Press 3 to Calculate Bill\n");
printf("Press 4 to Make Payment\n");
choice = input();
float current,rate,previous,units,monthly,bill,stand,paid;
switch (choice){
case 1:{
exit(0);
break;
}
case 2:{
printf("Input Current Reading\n");
scanf("%f",¤t);
}
case 3:{
printf("Enter Rate\n");
scanf("%f",&rate);
printf("Enter Previous Reading\n");
scanf("%f",&previous);
units=current-previous;
monthly=units*rate;
bill=150+monthly;
printf("\n Total Bill:%.3f\n",bill);
}
case 4:{
printf ("------PAYMENT------\n");
printf("\n");
printf("Amount To Pay is %.3f",bill);
printf("\n");
printf("Enter Amount\n");
scanf("%f",&paid);
printf("Remaining Balance\n %.3f",bill-paid);
break;
}
}
}
else
{
printf("\n Wrong Password");
}
}
else
{
printf("\n User Doesn't Exist'");
}
return 0;
}
int input()
{
int number;
scanf("%d",&number);
return (number);
}
void output(float number)
{
printf("%f",number);
}