В этой статье обсуждаются полезные способы чтения текстового файла на языке программирования C.
Чтение текстового файла в C
Существует четыре метода чтения текстового файла в C:
- fscanf() для чтения текстового файла
- fgets() для чтения текстового файла
- fgetc() для чтения текстового файла
- fread() для чтения текстового файла
Метод 1: Использование функции fscanf() для чтения текстового файла в C
фсканф() function — это стандартная библиотечная функция, которая принимает массив аргументов и преобразует их в значения, которые может использовать ваша программа. Он находит строку формата внутри файла и возвращает строку формата при чтении из файла. Строка формата должна быть заключена в кавычки (« »), чтобы ваша программа не интерпретировала их как часть собственного синтаксиса.
фсканф() функция считывает данные в места, предоставленные элементами в списке-аргументов. Все записи списка аргументов должны указывать на переменные, типы которых соответствуют спецификаторам типа в строке формата.
Он дает либо EOF (конец файла), либо количество переменных с присвоенными им значениями.
Давайте рассмотрим пример чтения текстового файла с помощью фсканф() функция:
#includeвнутренний основной ( )
{
ФАЙЛ * указатель = fopen ( 'имя_файла.txt' , 'р' ) ;
если ( указатель == NULL ) {
printf ( 'такого файла не существует.' ) ;
возвращаться 0 ;
}
чар буф [ 100 ] ;
пока ( фсканф ( птр, '%s' , буф ) == 1 )
printf ( '%s \n ' , буф ) ;
возвращаться 0 ;
}
В этом коде fopen() Функция используется для открытия файла под переменной указателя ptr. фсканф() Затем функция используется для чтения файла и печати его содержимого.
Выход
Способ 2: Использование функции fread() для чтения текстового файла в C
Данные из файла считываются Фред() метод и сохраняется в буфере. Элементы до подсчета считываются в буфер массива с помощью fread() функция из входного потока, который предоставляется в качестве аргумента функции.
Когда общее количество элементов успешно прочитано, возвращается объект size_t. Если это значение отличается от значения, заданного программой, либо произошла ошибка, либо был достигнут конец файла.
#includeвнутренний основной ( )
{
символьный буфер [ 33 ] ;
ФАЙЛ * транслировать;
поток = fopen ( 'имя_файла.txt' , 'р' ) ;
целочисленный счет = fread ( & буфер, размер ( уголь ) , 33 , транслировать ) ;
закрыть ( транслировать ) ;
printf ( 'Данные считаны из файла: %s \n ' , буфер ) ;
printf ( 'Количество прочитанных элементов: %d' , считать ) ;
возвращаться 0 ;
}
В этом коде fopen() функция используется для открытия файла, а затем fread() Затем функция используется для чтения файла и печати его содержимого. 33 показывает количество символов, которые он будет считывать из файла.
Выход
Способ 3: Использование функции fgets() для чтения текстового файла в C
С fgets() функция, строка читается из указанного потока и сохраняется в соответствующей строковой переменной. Когда читаются (n-1) символов, символ новой строки или конец файла, или что-то из этого происходит раньше, программа завершается. Если функция выполнена успешно, возвращается та же строка. Содержимое строки сохраняется на месте, и возникает нулевой указатель, если функция достигает конца файла без прочитанных символов.
В случае сбоя он предоставляет нулевой указатель.
#includeвнутренний основной ( ) {
ФАЙЛ * фп;
Чар ул [ 60 ] ;
фп = фопен ( 'файл.txt' , 'р' ) ;
если ( fp == NULL ) {
ошибка ( 'Ошибка открытия файла' ) ;
возвращаться ( - 1 ) ;
}
если ( fgets ( ул, 100 , фп ) ! =НОЛЬ ) {
ставит ( ул ) ;
}
закрыть ( фп ) ;
возвращаться ( 0 ) ;
}
В этом коде файл.txt файл открывается fopen() функционировать, а затем fgets() Затем функция используется для чтения строк в файле, а затем для их печати. 100 показывает количество строк, которые он будет считывать.
Выход
Метод 4: Использование функции fgetc() для чтения текстового файла в C
фгтек() Функция используется для чтения символов один за другим. Затем функция возвращает код ASCII прочитанного символа. Он возвращает символ, который присутствовал в указанном месте указателя файла. Затем указатель файла переходит к следующему символу. Если возникает ошибка или указатель достигает конца файла, эта функция возвращает EOF (конец файла).
#includeвнутренний основной ( )
{
ФАЙЛ * фп = фопен ( 'файл.txt' , 'р' ) ;
если ( fp == NULL )
возвращаться 0 ;
делать {
символ с = fgetc ( фп ) ;
если ( феоф ( фп ) )
перерыв ;
printf ( '%с' , с ) ;
} пока ( 1 ) ;
закрыть ( фп ) ;
возвращаться ( 0 ) ;
}
“ файл.txt » файл открывается fopen() в этом коде под переменной-указателем fp. Затем символы файла считываются с помощью fgetc() метод, который печатает прочитанные символы.
Выход
Заключение
Чтение файлов — необходимость для каждого пользователя компьютера, а особенно для разработчика важно, чтобы он мог получить доступ к файлам с помощью своего кода. Поэтому выше в статье упоминаются 4 метода чтения текстовый файл используя язык Си. фсканф() и fread() используются для чтения файлов аналогичным образом, за исключением того, что fread() позволяет нам указать количество символов, которое пользователь хочет прочитать, в то время как fgets() используется для чтения файла построчно, и fgetc() используется для чтения файла символ за символом.