+ All Categories

FILES

Date post: 30-Dec-2015
Category:
Upload: gretchen-herrmann
View: 29 times
Download: 0 times
Share this document with a friend
Description:
FILES. Explain files. Discuss text File and binary File. Use basic file Operations & functions. Explain file pointer. Explain Formatted/Unformatted I/O Statements in File. Discuss current active pointer. Data files Can be created, updated, and processed by C programs - PowerPoint PPT Presentation
26
Transcript

Explain files

Discuss text File and binary File

Use basic file Operations & functions

Explain file pointer

Discuss current active pointer

Explain Formatted/Unformatted I/O Statements in File

Data files– Can be created, updated, and processed by C

programs – Are used for permanent storage of large

amounts of data• Storage of data in variables and arrays is only

temporary.

Files A file may be anything from a disk file to a terminal or a printer.

All files are automatically closed when the program, using them, terminates, normally by main() returning to the operating system or by a call to exit().

Files are not closed when a program crashes

A file is associated with a stream by performing an open operation and is disassociated from a stream by a close operation.

File : A file is a place on the disk where a group of related data is stored simply

defined as “Collection of related information”

Difference between text and binary file• A binary file is treated as raw data and read

byte-by-byte. The binary file do not store any special character of end-of-line.

• A text file is considered to contain lines of text that are separated by some end-of-line markings.

Basic file operations Naming a file

Opening a file

Reading data from a file

Writing data to a file

Closing a file

Function Name

Operation

fopen() Creates a new file Opens an existing file

fclose() Closes a file which has been opened

getc() Reads a character from a file

putc() Writes a character to a file

fprintf() Writes a set of data values to a file

fscanf() Reads a set of data values from a file

getw() Reads an integer from a file

putw() Writes an integer to a file

fseek() Sets the position to a desired point in the file

ftell() Gives the current position in the file(bytes)

rewind() Set the position to the begining of the file

Using feof()

The Syntax of this Function is :

Returns true if end-of-file indicator (no more data to process) is set for the specified file

It is a pointer to a structure which contains the information about the file

FILE *file pointername;

FILE *fp;

pointername = fopen(“filename”, “file mode”);

fp=fopen(“emp.txt”,”w”);

Mode Name Meaning

w Open a text file for Writing

r Open a text file for Reading

a Append to a text file

rb Open a binary(random) file for reading

wb Create a binary(random) file for Writing

ab Append to a binary(random) file

r+ Open a text file for Read/Write

w+ Create a text file for Read/Write

a+ Append or create a text file for Read/Write

rb+ Open a binary(random) file for read/write

wb+ Create a binary(random) file for read/write

ab+ Append a binary(random) file for read/write

fclose(filepointer name);

fclose(fp);

File I/O Operations

• Unformatted file I/O functions fputc() & fgetc() – Char. Orient. file I/O Operations

fputs() & fgets() – String Orient. file I/O Operations

• Formatted file I/O functions fprintf() and fscanf() – mixed data oriented file I/O

Operations

Reading a character

The fgetc() function is used for reading characters from a file opened in read mode, using fopen().

Syntax :

Writing a character

The function used for writing characters to a file, that was previously opened using fopen(), is fputc().

Syntax :

Character Oriented FunctionsTo create a file consisting of characters: fputc()#include<stdio.h>

void main()

{

FILE *fp; (fp is a pointer to FILE type)

char c;

fp=fopen(“sample.txt”,”w”);

printf(“Keep typing characters. Type ‘q’ to terminate”);

c=getchar();

while(c!=‘q’)

{ Output:

fputc(c,fp); Keep typing characters. Type ‘q’ to terminate

c=getchar(); artyhefhfgfgrq

}

fclose(fp);

}

To read a file consisting of characters: fgetc()

#include<stdio.h>

void main()

{

FILE *fp;

char c;

fp=fopen(“sample.txt”,”r”);

printf(“The contents of the file ‘sample’ are:\n”);

while(!feof(fp))

{ Output:

c=fgetc(fp); The contents of the file ‘sample’ are:

putchar(c); artyhefhfgfgrq

}

fclose(fp);

}

String Input / Output

fputs() and fgets(), which write and read character strings to and from disk file.

The Syntax for the above functions are -

String Oriented FunctionsTo create a file consisting of strings: fputs()

#include<stdio.h>

void main()

{

FILE *fp;

char name[20];

int i,n;

fp=fopen(“names.txt”,”w”);

printf(“Enter the number of names\n”);

scanf(“%d”,&n);

printf(“Enter %d names\n”,n);

for(i=1;i<=n;i++) Output:

Enter no. of names: 4

{ Enter 4 names

gets(name); Joel

fputs(name,fp); Ida

} Mary

fclose(fp); Jeba

}

To read a file consisting of strings: fgets()

#include<stdio.h>

void main()

{

FILE *fp;

char name[20];

fp=fopen(“names.txt”,”r”);

printf(“Strings are: \n”);

while(!feof(fp)) Output:

{ Strings are:

fgets(name,20,fp); Joel

puts(name); Ida

printf(“\n); Mary

} Jeba

fclose(fp);

}

fprintf() and fscanf()

These functions are similar to printf() and scanf() except that they operate with files.

Syntax

fprintf(FILE *fp, “Control string”, arguments-list);

fscanf(FILE *fp, “control string”,argument-list);

Mixed data oriented functionsTo Create a file consisting of employees’ details: fprintf()

#include<stdio.h>

struct emp

{

int empno;

char name[20];

float salary;

}e;

void main() Output:

{ Enter the number of employees

FILE *fp; 1

int i,n; Enter 1 Employees’ details

fp=fopen(“emp.txt”,”w”); 123 Joel 1234

printf(“Enter the number of employees\n”);

scanf(%d”,&n);

printf(“Enter %d Employees’ Details\n”,n);

for (i=1;i<=n;i++)

{

scanf(“%d%s%f”,&e.empno,e.name,&e.salary);

fprintf(fp,”%d%s%f”, ”,e.empno,e.name,e.salary);

}

fclose(fp);

}

To read a file consisting of employees’ details: fscanf()#include<stdio.h>

struct emp

{

int empno;

char name[20];

float salary;

}e;

void main()

{

FILE *fp; Output:

int i,n; Contents of the file emp.txt

fp=fopen(“emp.txt”,”r”); 123 Joel 1234

printf(“Contents of the file emp.txt”);

while(!feof(fp))

{

fscanf(fp,“%d%s%f”,&e.empno,e.name,&e.salary);

Printf(”%d%s%f”, ”,e.empno,e.name,e.salary);

}

fclose(fp);

}

The rewind() function resets the file position indicator to the beginning of the file.

rewind() function

The syntax for rewind() is :

The prototype for the rewind() is available in stdio.h

Current File Pointer Position

In order to keep track of the position where I/O operations take place a pointer is maintained in the file structure.

The current location of the current active pointer can be found with the help of the ftell() function

Setting Current File Pointer Position

The fseek() function repositions the filepointer by a specified number of bytes from the start, the current position or the end of the stream depending upon the position specified in the fseek() function.

The Syntax of the fseek() function is -

Here the offset is the number of bytes beyond the file location given by origin.

Setting Current File Pointer Position

The origin indicates the starting position of the search and must have the value of either 0 ,1 or 2.

Origin File Location

SEEK_SET or 0 Beginning of file

SEEK_CUR or 1 Current file pointer position

SEEK_END or 2 End of file

The fread() and fwrite() function

The Syntax for these functions are -

size_t fread(void *buffer, size_t num_bytes, size_t count FILE *fp);

size_t fwrite(const void *buffer, size_t num_bytes, size_t count FILE *fp);

Used to read and write an entire block of data to and from a file


Recommended