|
|
|
|
C Programming Tutorials
Program Structure:
Basic DataTypes:
Variable Types:
Storage Classes:
Using Constants:
Operator Types:
Control Statements:
Input and Output:
Pointing to Data:
Functions:
Strings:
Structured DataTypes:
Working with Files:
Bits:
Pre-Processors:
Built-in Library Functions:
Soft Skills
|
C Programming TutorialsWorking with Files
To open a file you need to use the fopen function, which returns a FILE pointer. Once you've opened a file, you can use the FILE pointer to let the compiler perform input and output functions on the file.
Here filename is string literal which you will use to name your file and mode can have one of the following values
Note that it's possible for fopen to fail even if your
program is perfectly correct: you might try to open a file specified by the
user, and that file might not exist (or it might be write-protected). In those
cases, fopen will return 0, the NULL pointer.
This code will open test.txt for reading in text mode. To
open a file in a binary mode you must add a b to the end of the mode string; for
example, "rb" (for the reading and writing modes, you can add the b either after
the plus sign - "r+b" - or before - "rb+")
fclose returns zero if the file is closed successfully.
To work with text input and output, you use fprintf and
fscanf, both of which are similar to their friends printf and scanf except that
you must pass the FILE pointer as first argument.
This will create a file test.txt in /tmp directory and will
write This is testing in that file.
It is also possible to read (or write) a single character at a time--this can be useful if you wish to perform character-by-character input. The fgetc function, which takes a file pointer, and returns an int, will let you read a single character from a file:
The fgetc returns an int. What this actually means is that
when it reads a normal character in the file, it will return a value suitable
for storing in an unsigned char (basically, a number in the range 0 to 255). On
the other hand, when you're at the very end of the file, you can't get a
character value--in this case, fgetc will return "EOF", which is a constant that
indicates that you've reached the end of the file.
Note that the first argument should be in the range of an unsigned char so that it is a valid character. The second argument is the file to write to. On success, fputc will return the value c, and on failure, it will return EOF. Binary
I/O
Both of these functions deal with blocks of memories - usually arrays. Because they accept pointers, you can also use these functions with other data structures; you can even write structs to a file or a read struct into memory. NEXT >> Bits Manipulation
|