C Программа для чтения содержимого всего файла
Язык программирования C поддерживает четыре предопределенных функции для чтения содержимого из файла, определенного в заголовочном файле stdio.h:
- fgetc() — эта функция используется для чтения одного символа из файла.
- fgets() — эта функция используется для чтения строк из файлов.
- fscanf() — эта функция используется для чтения блока необработанных байтов из файлов. Это используется для чтения двоичных файлов.
- fread() — эта функция используется для чтения форматированного ввода из файла.
Шаги для чтения файла:
- Откройте файл с помощью функции fopen() и сохраните ссылку на файл в указателе FILE.
- Прочитайте содержимое файла, используя любую из этих функций fgetc(), fgets(), fscanf() или fread().
- Файл закройте файл с помощью функции fclose().
Давайте начнем подробно обсуждать каждую из этих функций.
fgetc()
fgetc() считывает символы, на которые в это время указывает указатель функции. При каждом успешном чтении он возвращает символ (значение ASCII), считанный из потока, и перемещает позицию чтения на следующий символ. Эта функция возвращает константу EOF (-1), когда нет содержимого для чтения или чтение завершилось неудачно.
Синтаксис:
int fgetc(FILE *ptr);
Подход:
- Эта программа читает все содержимое файла, используя эту функцию, считывая символы один за другим.
- Будет использоваться цикл Do-While, который будет считывать символ до тех пор, пока он не достигнет конца файла.
- Когда он достигает конца, он возвращает символ EOF (-1).
Использование EOF:
Ниже приведена программа C для реализации вышеуказанного подхода:
C
// C program to implement// the above approach#include <stdio.h>#include <stdlib.h>#include <string.h>// Driver codeint main(){ FILE* ptr; char ch; // Opening file in reading mode ptr = fopen("test.txt", "r"); if (NULL == ptr) { printf("file can"t be opened
"); } printf("content of this file are
"); // Printing what is written in file // character by character using loop. do { ch = fgetc(ptr); printf("%c", ch); // Checking if character is not EOF. // If it is EOF stop eading. } while (ch != EOF); // Closing the file fclose(ptr); return 0;} |
Входной файл:
GeeksforGeeks | A computer science portal for geeks
Выход:

В приведенном выше коде подход состоит в том, чтобы прочитать один символ из файла и проверить, не является ли он EOF, если это не так, то распечатать его, а если это так, то прекратить чтение.
Использование feof():
Функция feof() принимает указатель на файл в качестве аргумента и возвращает true, если указатель достигает конца файла.
Синтаксис:
int feof(FILE *ptr);
Подход:
- В этом подходе символ считывается с помощью fgetc().
- Использование функции feof() для проверки конца файла. так как feof() возвращает true после достижения конца.
- Используйте логический оператор НЕ(!), чтобы при достижении конечного условия стало ложным и цикл остановился.
Ниже приведена программа на C для реализации описанного выше подхода:
Входной файл:
GeeksforGeeks | A computer science portal for geeks
Выход:

fgets()
fgets() считывает из файла по одной строке за раз. fgets() возвращает строку, если она успешно прочитана функцией, или возвращает NULL, если чтение невозможно.
Синтаксис:
char * fgets(char *str, int size, FILE * ptr);
Here,
str: It is string in which fgets() store string after reading it from file.
size: It is maximum characters to read from stream.
ptr: It is file pointer.
Подход:
- При таком подходе содержимое файла считывается по одному символу, пока не будет достигнут конец файла.
- Когда мы достигнем конца файла, fgets() не сможет его прочитать и вернет NULL, и программа прекратит чтение.
Ниже приведена программа на C для реализации описанного выше подхода:
Входной файл:
GeeksforGeeks | A computer science portal for geeks
Выход:

фсканф()
fscanf() читает форматированный ввод из потока.
Синтаксис:
int fscanf(FILE *ptr, const char *format, …)
Подход:
- fscanf считывает отформатированные данные из файлов и сохраняет их в переменных.
- Данные в буфере выводятся на консоль до тех пор, пока не будет достигнут конец файла.
Выход:

fread()
fread() упрощает чтение блоков данных из файла. Например, в случае чтения структуры из файла становится легко читать с помощью fread.
Синтаксис:
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream)
ptr: This is the pointer to a block of memory with a minimum size of size*nmemb bytes.
size: This is the size in bytes of each element to be read.
nmemb: This is the number of elements, each one with a size of size bytes.
stream: This is the pointer to a FILE object that specifies an input stream.
Подход:
- Сначала он считывает количество объектов, каждый из которых имеет размер size байтов из заданного входного потока.
- Общее количество байтов, прочитанных в случае успеха, равно (размер*количество).
- Согласно нет. прочитанных символов позиция файла индикатора увеличивается.
- Если прочитанные объекты не являются копируемыми тривиально, то поведение не определено, и если значение size или count равно нулю, то эта программа просто вернет 0.
Выход:
