Slot26 27 28 Text Files
Slot26 27 28 Text Files
Text Files
Module H: Files
Programming Fundamentals using C
Objectives
• What is a file?
• How are data stored in files?
• How to access data in a text file?
Text Files 2
Programming Fundamentals using C
Text Files 3
Programming Fundamentals using C
Contents
1- What is a file?
2- File types
3- Ways for accessing files
4- Connecting to a file
5- Declaration a file variable
6- Steps for accessing a file
7- File Functions and Demonstrations
Bonus- Text Files and Parallel Arrays
Text Files 4
Programming Fundamentals using C
1- What is a file?
• A complete, named collection of information,
such as a program, a set of data used by a
program, or a user-created document. A file is
the basic unit of storage that enables a computer
to distinguish one set of information from
another. A file is the “glue” that binds a
conglomeration of instructions, numbers, words,
or images into a coherent unit that a user can
retrieve, change, delete, save, or send to an
output device (from MS Computer Dictionary)
Text Files 5
Programming Fundamentals using C
What is a file?...
• A file is not necessarily stored contiguously on a
secondary storage device .
• Disk Track Sector
• Some sectors Cluster
• Unit of disk allocation: Cluster
• This cluster contains data to point to the next
one.
• The contents of a file is accessible after we have
turned the power off and back on at a later time.
Text Files 6
Programming Fundamentals using C
Text Files 7
Programming Fundamentals using C
2- File Types
• The fundamental unit of a file is a byte.
• A file is a stream of bytes.
• A file concludes with a special mark called the
end of file mark (EOF).
• Based on the way used to store data:
– Text file: Unit of data in a file is an ASCII code of
character.
– Binary file: Unit of data in a binary byte Each
byte on the file is a direct image of the
corresponding byte in memory
Text Files 8
Programming Fundamentals using C
File Types…
Characters 01000001
“ABC” 01000010
01000001 (‘A’) 01000011
01000010 (‘B’) Text file
01000011 (‘C’) 00110010
00000000 (NULL) 00110110
ASCII codes 00110000
of digits
Data 00110010 (‘2’)
00110110 (‘6’)
00110000 (‘0’)
Number
260 (2 bytes) convert
00000001 Binary
00000001 file
00000100
00000100
Text Files 10
Programming Fundamentals using C
4- Connecting to a File
• Os manages hardware Connecting a file in
a program should be announced to the OS.
• OS can manage some files concurrently. At a
time, only one file can be accessed
Information about the opened file must be
maintained for next read or write.
typedef struct _iobuf
stdio.h
{
char* _ptr;
int_cnt;
char* _base;
int _flag;
int _file;
int _charbuf;
int _bufsiz;
char* _tmpfname;
} FILE;
Text Files 11
Programming Fundamentals using C
5- Declaration
• FILE* identifier ; typedef struct _iobuf
{
• Example char* _ptr;
int_cnt;
#include <stdio.h> char* _base;
int _flag;
FILE* f=NULL; int _file;
• The variable f will be int
int
_charbuf;
_bufsiz;
updated when a specific char* _tmpfname;
} FILE;
file is opened.
• f points to a memory block
having the pre-defined
structure
Text Files 12
Programming Fundamentals using C
Text Files 13
Programming Fundamentals using C
To specify a filename
D:
T1 T2 T3
T21 f4.txt
T22
Text Files 14
Programming Fundamentals using C
Text Files 16
Programming Fundamentals using C
Text Files 17
Programming Fundamentals using C
Text Files 18
Programming Fundamentals using C
The next byte read (ASCII int fgetc(FILE* fp) Pointer of the file opened
code)
or EOF(-1) End of File
The character written int fputc( int ch, FILE* fp) Character will be written to
or EOF the file
Text Files 19
Programming Fundamentals using C
Demonstration 1
Write a C-program that
will use command line
to perform writing a
text file from
characters inputted by
user until the keys
Ctrl+Z then ENTER
are pressed.
Syntax of the program:
copy_con filename
Text Files 20
Programming Fundamentals using C
Demonstration 1…
Text Files 21
Programming Fundamentals using C
Demonstration 1…
Text Files 22
Programming Fundamentals using C
Demonstration 1…
argCount=1 argCount=2
Text Files 23
Programming Fundamentals using C
Demonstration 1…
Text Files 24
Programming Fundamentals using C
The fgets() function reads characters from the file associated with fp into a string
pointed to by str until num-1 characters have been read, a newline character is
encountered, or the end of the file is reached. The string is null-terminated and the
newline character is retained. The function returns str if successful and a null pointer if
an error occurs.
The fputs() function: The null that terminates str is not written and it does not
automatically append a carriage return/linefeed sequence.
Text Files 25
Programming Fundamentals using C
Demonstration 2
Text Files 26
Programming Fundamentals using C
Demonstration 2…
Text Files 27
Programming Fundamentals using C
Demonstration 2…
Text Files 28
Programming Fundamentals using C
Demonstration 2…
Text Files 29
Programming Fundamentals using C
Text Files 30
Programming Fundamentals using C
Demonstration 3
Text Files 31
Programming Fundamentals using C
Demonstration 3….
Text Files 32
Programming Fundamentals using C
Demonstration 3…
Text Files 33
Programming Fundamentals using C
Demonstration 3…
Text Files 34
Programming Fundamentals using C
Demonstration 4
• Create a file, named array1.txt. The first number in the
file is number of elements of an integer array. The later
numbers are values of elements.
Demonstration 4…
Text Files 36
Programming Fundamentals using C
Demonstration 4…
Text Files 37
Programming Fundamentals using C
Demonstration 5
• Create a file, named array3.txt containing real numbers.
Text Files 38
Programming Fundamentals using C
Demonstration 5…
Text Files 39
Programming Fundamentals using C
Demonstration 6: rewind(FILE*)
Text Files 40
Programming Fundamentals using C
Demonstration 7: fseek(…)
Text Files 41
Programming Fundamentals using C
Summary
• File: Related data that are stored in a mass
storage (disks).
• Files are managed by the operating system
(OS).
• OS identifies a file through it’s name.
• To specify a absolute filename in C:
“C:\\f1\\f11\\file1.dat” or “C:/f1/f11/file1.dat”
• To process data in a file: We need to know
format and meaning of each data in file.
Text Files 42
Programming Fundamentals using C
Summary
Purpose STDIO.H Syntax
Open a file FILE* fopen(char fname[], char mode[])
Close a opening fle int fclose(FILE*)
Read a character int fgetc(FILE*)
Write a character int fputc(char, FILE*) EOF (-1)
Read a string fgets( char S[], int nbytes, FILE* f); NULL if EOF
Write a string fputs ( char*, FILE*)
Read a number fscanf ( FILE*, char* format, PointerList)
Write a number fprint ( FILE*, char* format, VarList)
Test whether the file is EOF? int feof(FILE*)
Rewind to the beginning void rewind (FILE*)
Get the current file position long ftell(FILE*)
Move the current position int fseek (FILE*, long offset, int fromPos)
Rename a closed file rename ( char fName[], char newName[])
Remove a closed file remove ( char fName[])
Text Files 43
Programming Fundamentals using C
Summary
Text Files 44
Programming Fundamentals using C
Summary
!=NULL or NULL
numeric
fscanf ( f, “%♣” , &x); variable fprintf ( f, “%♣” , x);
x
Return value:
-1 (EOF) end-of- file error or file error
>0 : read successfully
Text Files 45
Programming Fundamentals using C
Thank You
Text Files 46