Append Mode & Copying a file;

Question- Copy a file into new file and write more data into that file and display the records;

Answer-

#include<stdio.h>
#include<conio.h>
int main()
{
    struct student
    {
        char name[10];
        char pname[5];
        int term;
        double fee;
    }s,r,v[2];
    int i;
    FILE *f1,*f2;
    f1=fopen(“origin.txt”,”w”);
    printf(“\nNew File ORIGIN.TXT Open.”);
    printf(“\nEnter name – “);
    scanf(“%s”,&s.name);
    printf(“\nEnter Program name – “);
    scanf(“%s”,&s.pname);
    printf(“\nEnter Term id -“);
    scanf(“%d”,&s.term);
    printf(“\nEnter Fees – “);
    scanf(“%ld”,&s.fee);
    fwrite(&s,sizeof(s),1,f1);
    fclose(f1);
    printf(“\nORIGIN.TXT Opened in read mode and NEW.TXT in write mode.”);
    f1=fopen(“origin.txt”,”r”);
    f2=fopen(“new.txt”,”w”);
    fread(&r,sizeof(r),1,f1);
//reading the data from origin.txt
    fwrite(&r,sizeof(s),1,f2); //copying data to new.txt
    printf(“\nCopying completed.”);
    fclose(f1);
    fclose(f2);
    printf(“\nExsiting File NEW.TXT Open as append mode.”);
    f2=fopen(“new.txt”,”a”);
//in append mode the pointer in file is set to the last of file
    printf(“\n\nEnter name – “);
    scanf(“%s”,&s.name);
    printf(“\nEnter Program name – “);
    scanf(“%s”,&s.pname);
    printf(“\nEnter Term id -“);
    scanf(“%d”,&s.term);
    printf(“\nEnter Fees – “);
    scanf(“%ld”,&s.fee);
    fwrite(&s,sizeof(s),1,f2);
    fclose(f2);
    printf(“\nExsiting File NEW.TXT Open as read mode.”);
    f2=fopen(“new.txt”,”r”);
    for(i=0;i<2;i++)
    {
        fread(&v[i],sizeof(v[i]),1,f2);
        printf(“\n\nName= %s\nProgram name = %s\nTerm id = %d\nFees = %ld”,v[i].name,v[i].pname,v[i].term,v[i].fee);
    }
    printf(“\n\n\tPROGRAMMING @ CODE STUDIO”);
    getch();
}

 

OUTPUT-

append

BANK STRUCTURE WITH FILE HANDLING;

QUESTION-

MAKE BANK DATA WITH MEMORY ALLOC AT RUN TIME AND STORE DATA IN FILE ASK USER TO SEARCH AND DISPLAY THE DATA ON SCREEN.

ANSWER-

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
struct bank
{
char name[10];
int acc;
double bal;
}*s;
int n,i;
int ac;
printf(“\nEnter the record size:”);
scanf(“%d”,&n);
s=(struct bank*)malloc(n*sizeof(struct bank));
FILE *f;
f=fopen(“bdata.txt”,”w”);
for(i=0;i<n;i++)
{
printf(“\nName:”);
scanf(“%s”,&s[i].name);
printf(“\nAcc no.:”);
scanf(“%d”,&s[i].acc);
printf(“\nBalance:”);
scanf(“%ld”,&s[i].bal);
}
for(i=0;i<n;i++)
{
fprintf(f,”%s %d %ld”,s[i].name,s[i].acc,s[i].bal);
}
fclose(f);
f=fopen(“bdata.txt”,”r”);
while(!feof(f))
{
for(i=0;i<n;i++)
{
fscanf(f,”%s %d %ld”,&s[i].name,&s[i].acc,&s[i].bal);
printf(“\nNAME=%s,ACCOUNT NO.%d”,s[i].name,s[i].acc);
}
}
printf(“\nENTER ACCNO.TO SEARCH:”);
scanf(“%d”,&ac);
for(i=0;i<n;i++)
{
if(s[i].acc==ac)
{
printf(“\n\nWELCOME %s,TO ADF BANK LTD.”,s[i].name);
printf(“\nCURRENT BALANCE: %ld”,s[i].bal);
}
}
fclose(f);
printf(“\n\n\tPROGRAMMING @ CODE STUDIO”);
getch();
}

File Input-

BDATA

OUTPUT-

BANK

BINARY MODE(FH);

QUESTION- WRITE 3 VEHICALS DATA IN BINARY MODE TO A FILE AND READ THEM

ANSWER-

#include<stdio.h>
#include<conio.h>
#include<string.h>
int main()
{
    struct veh
    {
        char n[10];
        char m[10];
        char c[10];
    }s[3];
    int i;
    FILE *f;
    for(i=0;i<3;i++)
    {
        printf(“\nNAME %d:”,i+1);
        scanf(“%s”,&s[i].n);
        printf(“\n–MODEL:”);
        scanf(“%s”,&s[i].m);
        printf(“\n–COST:”);
        scanf(“%s”,&s[i].c);
    }
    f=fopen(“catalog.txt”,”wb”); //wb is used for ‘write in binary’
    for(i=0;i<3;i++)
    {
        fwrite(&s[i],sizeof(s[i]),1,f);
    }
    fclose(f);
    f=fopen(“catalog.txt”,”rb”); //rb is used for read in binary’
    while(!feof(f))
    {
        fread(s,sizeof(s),10,f);
    }
    for(i=0;i<3;i++)
    {
        printf(“\nNAME %d : %s”,i+1,s[i].n);
        printf(“\n–MODEL: %s”,s[i].m);
        printf(“\n–COST: %s\n”,s[i].c);
    }
    printf(“\n\n\tPROGRAMMING @ CODE STUDIO”);
    getch();
}

OUTPUT IN FILE-

VEHF

DISPLAY SCREEN-

VEH

USE OF “FSEEK” IN FILE HANDLING;

QUESTION-

MAKE A FILE, WRITE MORE THAN 20 CHARS INTO THIS AND AT DISPLAY SKIP 16 CHAR FROM START:

ANSWER-

#include<stdio.h>
#include<conio.h>
#include<string.h>
int main()
{
    FILE *f;
    f=fopen(“r11.txt”,”w”);
    int i,l;
    char c[100],ch;
    printf(“INPUT PHRASE HAVING MORE THAN 20 CHARACTERS:\n”);
    gets(c);
    l=strlen(c);
    printf(“\nAFTER SKEEPING 16 CHARACTER PHRASE WILL BE : \n”);
    for(i=0;i<l;i++)
    {
        fputc(c[i],f);
    }
    fclose(f);
    f=fopen(“r11.txt”,”r”);
    fseek(f,16,SEEK_SET); //SYNTAX TO SEEK FILE POINTER
    while(!feof(f))
    {
        ch=fgetc(f);
        printf(“%c”,ch);
    }
    fclose(f);
    printf(“\n\n\tPROGRAMMING @ CODE STUDIO”);
    getch();

}

OUTPUT TO FILE-

99cha

 

INPUT FROM FILE –

99char

Some Practice on File Handling;

QUESTION-

WRITING DATA TO FILE AND GET INPUT THROUGH THEM;

ANSWER-

#include<stdio.h>
#include<conio.h>
#include<string.h>
int main()
{
    struct student
    {
        char name[10];
        int s1;
        int s2;
        int s3;
    }s[3];
    FILE *f; //file pointer to variable
    f=fopen(“stdata.txt”,”w”); //fopen to open a file, w stands for write mode
    int i;
    for(i=0;i<3;i++)
    {
        printf(“\nNAME:”);
        scanf(“%s”,&s[i].name);
        printf(“\nMATHS MARK:”);
        scanf(“%d”,&s[i].s1);
        printf(“\nPHY MARKS:”);
        scanf(“%d”,&s[i].s2);
        printf(“\nCSE MARKS:”);
        scanf(“%d”,&s[i].s3);
    }
    for(i=0;i<3;i++)
    {
        fprintf(f,”%s %d %d %d”,s[i].name,s[i].s1,s[i].s2,s[i].s3); //FPRINTF to write data into file
        fputc(‘\n’,f);
    }
    fclose(f);
    f=fopen(“stdata.txt”,”r”); //r stands for read mode//
    for(i=0;i<3;i++)
    {
        fscanf(f,”%s %d %d %d”,&s[i].name,&s[i].s1,&s[i].s2,&s[i].s3); //fscanf to get data from file
        printf(“\nNAME=%s\tMATH=%d\tPHY=%d\tCSE=%d”,s[i].name,s[i].s1,s[i].s2,s[i].s3);
    }
    fclose(f); // fclose is used to close file from memory
    printf(“\n\n\tPROGRAMMING @ CODE STUDIO”);
    getch();
}

INPUT IN FILE-

STDATA

 

OUTPUT FROM FILE-

 

FILE

DAYNAMIC MEMORY ALLOCATION;

QUESTION-

CREATE STRUCTURE WITH USER NAME, EMAIL, PASSWORD AND GIVE MEMORY AT RUN TIME. ALSO FREE THE MEMORY AFTER EXECUTION.

ANSWER-

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
int main()
{
    struct user
    {
        char name[10];
        char pass[15];
        char email[26];
    }*u;
    int i,n,t;
    printf(“\nINPUT NO. OF USERS:”);
    scanf(“%d”,&n);
    u=(struct user*)malloc(n*sizeof(struct user)); //malloc is used to define memory at run time//
    for(i=0;i<n;i++)
    {
        printf(“\n\nUSER NAME:”);
        scanf(“%s”,&u[i].name);
        printf(“\n–EMAIL ID:”);
        scanf(“%s”,&u[i].email);
        printf(“\n–PASSWORD:”);
        scanf(“%s”,&u[i].pass);
    }
    for(i=0;i<n;i++)
    {
        printf(“\n\nUSER NAME:%s”,u[i].name);
        printf(“\n–EMAIL ID:%s”,u[i].email);
        printf(“\n–PASSWORD:%s”,u[i].pass);
    }   
    printf(“\nINPUT CURRENT TOTAL SETS:”);
    scanf(“%d”,&t);
    u=(struct user*)realloc(u,t*sizeof(struct user)); //realloc add more memory to give array//
    for(i=n;i<t;i++)
    {
        printf(“\n\nUSER NAME:”);
        scanf(“%s”,&u[i].name);
        printf(“\n–EMAIL ID:”);
        scanf(“%s”,&u[i].email);
        printf(“\n–PASSWORD:”);
        scanf(“%s”,&u[i].pass);
    }   
    printf(“\nNEW RECORDS AFTER INITIALIZING\n”);
    for(i=0;i<t;i++)
    {
        printf(“\n\nUSER NAME:%s”,u[i].name);
        printf(“\n–EMAIL ID:%s”,u[i].email);
        printf(“\n–PASSWORD:%s”,u[i].pass);
    }
    free(u); //free keyword release memory after its execution//
    printf(“\n\n\tPROGRAMMING @ CODE STUDIO”);
    getch();
}

 

OUTPUT-

mal