#include <stdio.h> #include <conio.h> #include \"valid.c\" struct emp_detail { int emp_no; char emp_name[10]; int emp_age; }; void getWriteFileName(char *str); void getReadFileName(char *str); void enterData(); void getTotalCount(); void getName(char *); FILE *fp; int flag=1; int count=0; char filename[14]; struct emp_detail emp_cur; void main() { char option; clrscr(); printf(\"\\nDo you want to create the data file type \'y\' for yes and \'n\' for no.\"); scanf(\"%c\", &option); fflush(NULL); if( option == \'y\' || option == \'Y\') getWriteFileName(filename); else if( option == \'n\' || option == \'N\') { getReadFileName(filename); getTotalCount(); } getch(); } void enterData() { printf(\"\\nEnter data .....\"); while(flag) { //printf(\"\\nEnter employee no. : \"); //scanf(\"%d\", &emp_cur.emp_no); getPosInteger(\"Enter employee no. : \", &emp_cur.emp_no); fflush(NULL); printf(\"\\nEnter employee name : \"); //scanf(\"%[^\\n]\", emp_cur.emp_name); getName(emp_cur.emp_name); fflush(NULL); //printf(\"\\nEnter employee age : \"); //scanf(\"%d\", &emp_cur.emp_age); getPosInteger(\"Enter employee age : \", &emp_cur.emp_age); fflush(NULL); fprintf(fp,\"%d %-10s %d\", emp_cur.emp_no, emp_cur.emp_name, emp_cur.emp_age); if( flag > 0 ) fprintf(fp,\"\\n\"); flag++; if(emp_cur.emp_no != 9999) { printf(\"\\nEnter 1 to continue and 0 to exit.\"); scanf(\"%d\", &flag); fflush(NULL); } else flag=0; count++; } fclose(fp); printf(\"\\nTotal number of employee record entered is : %d\", count); } void getName(char *str) { int count=0; char *getstr; char readch=\'\\0\'; int errorflag = 0; fflush(NULL); getstr = str; while(1) { scanf(\"%c\", &readch); if( readch == \'\\n\') break; if( isalpha(readch) == 0) { printf(\"\\nInvalid entry. Enter characters only.\\nEnter name again :\"); errorflag = 1; break; } else *getstr = readch; count++; getstr++; if( count >= 10 ) break; } if(errorflag) getName(emp_cur.emp_name); // *getstr=\'\\0\'; } void getWriteFileName(char *str) { printf(\"Enter Output File name maxium 14 character : \"); scanf(\"%s\", str); if( ( fp = fopen(str, \"wt\") ) == NULL ) { fclose(fp); printf(\"\\nInvalid file name entered.\"); } else enterData(); } void getReadFileName(char *str) { printf(\"Enter Input File name maxium 14 character : \"); scanf(\"%s\", str); if( ( fp = fopen(str, \"r+t\") ) == NULL ) { fclose(fp); printf(\"\\nInvalid file name entered.\"); } } void getTotalCount() { flag =0; while( feof(fp) == 0 ) { fscanf(fp, \"%d %10s %4d\", &emp_cur.emp_name, emp_cur.emp_name, &emp_cur.emp_age); flag++; } fclose(fp); printf(\"\\nTotal number of employee record entered is : %d\", flag); } /**************************** Input/Output ********************************/ Do you want to create the data file type \'y\' for yes and \'n\' for no.y Enter Output File name maxium 14 character : output.txt Enter data ..... Enter employee no. : 1 Enter employee name : chintan Enter employee age : 26 Enter 1 to continue and 0 to exit.1 Enter employee no. : 9999 Enter employee name : nilay Enter employee age : 29 Total number of employee record entered is : 2 /******************************* **********************************/