#include<stdio.h> #include<conio.h> #include<windows.h> #define ENTER 13 #define TAB 9 #define BCKSPC 8 struct user{ char fullName[50]; char email[50]; char password[50]; char username[50]; char phone[50]; }; void takeinput(char ch[50]){ fgets(ch,50,stdin); ch[strlen(ch) - 1] = 0; } char generateUsername(char email[50],char username[50]){ for(int i=0;i<strlen(email);i++){ if(email[i] == '@') break; else username[i] = email[i]; } } void takepassword(char pwd[50]){ int i; char ch; while(1){ ch = getch(); if(ch == ENTER || ch == TAB){ pwd[i] = '\0'; break; }else if(ch == BCKSPC){ if(i>0){ i--; printf("\b \b"); } }else{ pwd[i++] = ch; printf("* \b"); } } } int main(){ system("color 0b"); FILE *fp; int opt,usrFound = 0; struct user user; char password2[50]; printf("\n\t\t\t\t----------Welcome to authentication system----------"); printf("\nPlease choose your operation"); printf("\n1.Signup"); printf("\n2.Login"); printf("\n3.Exit"); printf("\n\nYour choice:\t"); scanf("%d",&opt); fgetc(stdin); switch(opt){ case 1: system("cls"); printf("\nEnter your full name:\t"); takeinput(user.fullName); printf("Enter your email:\t"); takeinput(user.email); printf("Enter your contact no:\t"); takeinput(user.phone); printf("Enter your password:\t"); takepassword(user.password); printf("\nConfirm your password:\t") takepassword(password2); if(!strcmp(user.password,password2)){ generateUsername(user.email,user.username); fp = fopen("Users.dat","a+"); fwrite(&user,sizeof(struct user),1,fp); if(fwrite != 0) printf("\n\nUser resgistration success, Your username is %s",user.username); else printf("\n\nSorry! Something went wrong :("); fclose(fp); } else{ printf("\n\nPassword do not matched"); Beep(750,300); } break; case 2: system ("cls"); char username[50],pword[50]; struct user user; printf("\nEnter your username:\t"); takeinput(username); printf("Enter your password:\t"); takepassword(pword); fp = fopen("Users.dat","r"); while(fread(&user,sizeof(struct user),1,fp)){ if(!strcmp(user.username,username)){ if(!strcmp(user.password,pword)){ system("cls"); printf("\n\t\t\t\t\t\tWelcome %s",user.fullName); printf("\n\n|Full Name:\t%s",user.fullName); printf("\n|Email:\t\t%s",user.email); printf("\n|Username:\t%s",user.username); printf("\n|Contact no.:\t%s",user.phone); } else { printf("\n\nInvalid Password!"); Beep(800,300); } usrFound = 1; } } if(!usrFound){ printf("\n\nUser is not registered!"); Beep(800,300); } fclose(fp); break; case 3: printf("\t\t\tBye Bye :)"); return 0; } getch(); }
Write, Run & Share C Language code online using OneCompiler's C online compiler for free. It's one of the robust, feature-rich online compilers for C language, running the latest C version which is C18. Getting started with the OneCompiler's C editor is really simple and pretty fast. The editor shows sample boilerplate code when you choose language as 'C' and start coding!
OneCompiler's C online editor supports stdin and users can give inputs to programs using the STDIN textbox under the I/O tab. Following is a sample C program which takes name as input and print your name with hello.
#include <stdio.h>
int main()
{
char name[50];
printf("Enter name:");
scanf("%s", name);
printf("Hello %s \n" , name );
return 0;
}
C language is one of the most popular general-purpose programming language developed by Dennis Ritchie at Bell laboratories for UNIX operating system. The initial release of C Language was in the year 1972. Most of the desktop operating systems are written in C Language.
When ever you want to perform a set of operations based on a condition if-else
is used.
if(conditional-expression) {
// code
} else {
// code
}
You can also use if-else for nested Ifs and if-else-if ladder when multiple conditions are to be performed on a single variable.
Switch is an alternative to if-else-if ladder.
switch(conditional-expression) {
case value1:
// code
break; // optional
case value2:
// code
break; // optional
...
default:
// code to be executed when all the above cases are not matched;
}
For loop is used to iterate a set of statements based on a condition.
for(Initialization; Condition; Increment/decrement){
// code
}
While is also used to iterate a set of statements based on a condition. Usually while is preferred when number of iterations are not known in advance.
while(condition) {
// code
}
Do-while is also used to iterate a set of statements based on a condition. It is mostly used when you need to execute the statements atleast once.
do {
// code
} while (condition);
Array is a collection of similar data which is stored in continuous memory addresses. Array values can be fetched using index. Index starts from 0 to size-1.
data-type array-name[size];
data-type array-name[size][size];
Function is a sub-routine which contains set of statements. Usually functions are written when multiple calls are required to same set of statements which increases re-usuability and modularity.
Two types of functions are present in C
Library functions are the in-built functions which are declared in header files like printf(),scanf(),puts(),gets() etc.,
User defined functions are the ones which are written by the programmer based on the requirement.
return_type function_name(parameters);
function_name (parameters)
return_type function_name(parameters) {
//code
}