There are mainly
three difference between binary and text mode. They are as follow.
i.
In text mode, a special character EOF whose ASCII value
is 26 is inserted after the last character in the file to mark the end of file.
But, there is no such special character present in the binary mode. The binary
mode files keep track of the end of file from the number of characters present
in the directory entry of the file.
ii.
In text mode of file, text and numbers are stored as
one character per byte. For example, the number 1234 occupies two bytes in
memory but it occupies 4 bytes (one byte per character) in the file. But, in
binary mode, the number occupies the number of bytes as it occupies in the
memory. Thus, the above number occupies
two bytes in file also in the case of binary mode.
iii.
In text mode, a new line character is converted into
the carriage return-linefeed combination before being written to the disk.
Likewise, the carriage return-line feed combination on the disk is converted
into a new line when the file is read by a C program. However, these conversions
doesn’t take place in the case of binary mode.
An example for binary mode of file:
Write a C program to write some text “Welcome to Acme College ”
to a data file in binary mode. Read its content and display it.
void main()
{
FILE *fptr;
char c;
clrscr();
fptr=fopen("test.txt","w+b");
if(fptr==NULL)
{
printf("\nFile can not be
created");
}
fputs("Welcome to Acme College ",fptr);
rewind(fptr);
printf("\From
File\n");
while(!feof(fptr))
{
printf("%c",getc(fptr));
}
fclose(fptr);
getch();
}
Example of writing structure
elements to a file,
Write a C program to create a structure named book having elements
name, page and price. Enter the members from keyboard. Write these data to a
file.
1) Using fprintf()
function
void main()
{
FILE *fp;
struct book
{
char name[20];
int page;
float price;
};
struct book b;
fp=open("stTest.txt","wb");
if(fp==NULL)
{
printf("\nError");
exit();
}
printf("\nEnter name of book\n");
gets(b.name);
printf("\nEnter number of pages\n");
scanf("%d",&b.page);
printf("\nEnter price of book\n");
b.price=89;
fprintf(fp,"%s%d%f",b.name,b.page,b.price);
printf("\nThe file has been createed\n");
fclose(fp);
}
2. Using fwrite() function:
void main()
{
….
……………………….
…………….
fwrite(&b, sizeof(b),1,fp); /* 1 means one
structure*/
fclose(fp);
}
Syntax for fwrite() and fread()
fwrite(&str_variable, sizeof(str_variable), number_of_structure,
file_ptr);
fread(&str_variable, sizeof(str_variable), number_of_structure,
file_ptr);
Comments
Post a Comment