0% found this document useful (0 votes)
42 views2 pages

C - Working With Files

To access files in C, you need to use a FILE pointer returned by the fopen function, which opens the file. This pointer allows input/output functions like fprintf and fscanf to perform I/O on the file. When finished, fclose closes the file. Binary I/O functions like fread and fwrite allow reading/writing blocks of memory or data structures to files. Character I/O is also possible with fgetc to read and fputc to write single characters.

Uploaded by

kok_oc25
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
42 views2 pages

C - Working With Files

To access files in C, you need to use a FILE pointer returned by the fopen function, which opens the file. This pointer allows input/output functions like fprintf and fscanf to perform I/O on the file. When finished, fclose closes the file. Binary I/O functions like fread and fwrite allow reading/writing blocks of memory or data structures to files. Character I/O is also possible with fgetc to read and fputc to write single characters.

Uploaded by

kok_oc25
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

C - Working with Files

When accessing files through C, the first necessity is to have a way to access the files. For C File I/O you need to use a FILE pointer, which will let the program keep track of the file being accessed. For Example:

FILE *fp;
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.

FILE *fopen(const char *filename, const char *mode);


Here filename is string literal which you will use to name your file and mode can have one of the following values

w a r+ w+ a+

open open open open open

for for for for for

writing (file need not exist) appending (file need not exist) reading and writing, start at beginning reading and writing (overwrite file) reading and writing (append if file exists)

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. Here's a simple example of using fopen:

FILE *fp; fp=fopen("/home/tutorialspoint/test.txt", "r");


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+") To close a function you can use the function:

int fclose(FILE *a_file);


fclose returns zero if the file is closed successfully. An example of fclose is:

fclose(fp);
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. Try out following example:

#include <stdio.h> main() { FILE *fp; fp = fopen("/tmp/test.txt", "w"); fprintf(fp, "This is testing...\n"); fclose(fp;);

}
Thsi will create a file test.txt in /tmp directory and will write This is testing in that file. Here is an example which will be used to read lines from a file:

#include <stdio.h> main() { FILE *fp; char buffer[20]; fp = fopen("/tmp/test.txt", "r"); fscanf(fp, "%s", buffer); printf("Read Buffer: %s\n", %buffer ); fclose(fp;); }
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:

int fgetc (FILE *fp);


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 constnat that indicates that you've reached the end of the file. The fputc function allows you to write a character at a time--you might find this useful if you wanted to copy a file character by character. It looks like this:

int fputc( int c, FILE *fp );


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
There are following two functions which will be used for binary input and output:

size_t fread(void *ptr, size_t size_of_elements, size_t number_of_elements, FILE *a_file); size_t fwrite(const void *ptr, size_t size_of_elements, size_t number_of_elements, FILE *a_file);
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.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy