Skip to main content

Difference between Binary mode and Text Mode in C programming


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

Popular posts from this blog

What is manipulator in C++?

Answer: Manipulators are special functions that can be included in the I/O statement to alter the format parameters of a stream. Table-2 shows some important manipulator functions that are frequently used. To access these manipulators, the file < iomanip.h > should be included in program.                               Table-2               Manipulators                                                    Equivalent ios function               set...

Explanation of Graphics in C programming

   The header file graphics.h should be included to use graphics related built in functions. Again, the variable gDriver is an integer variable that specifies graphics driver to be used. Device drivers are small programs which talk directly to the hardware. Graphics drivers are a subset of device drivers and are applicable only in the graphics mode. The initialization of this variable to DETECT is to set another variable gMode to the highest resolution available for the detected driver.  The value of this variable gDriver may be another than DETECT (e.g. 1 for CGA, 9 for VGA.). The variable gMode is an integer that specifies initial graphics mode.       The built in function initgraph() is for graphics initialization. The syntax for this is as   initgraph(&graphics_driver, &graphics_mode, path_to_driver);   path_to_driver specifies the directory path where initgraph() looks for graphics drivers ( .BGI files). Thi...

BIOS

BIOS stands for Basic Input Output System. It is is kind of OS pre- attached in the system Design to detect every I/O devices It holds basic drivers -checks all I/O devices -Loads main OS -Responsible for starting System switched on manufactured by AMI,Phonix,award,Baiostar POST error test, boots trap load, BIOS is unintrusive system. CMOS and BIOS are two different components of the motherboard. CMOS work as storage if BIOS. A basic software program containing all BIOS is permanently stored in the ROM. every essencial holds program Tresh passing without knowinig is called intrusive.