Како читати текстуалну датотеку у Ц

Kako Citati Tekstualnu Datoteku U C



Текстуалне датотеке спадају међу најчешће коришћене типове датотека на рачунарима. Могу се користити за широк спектар задатака, као што је складиштење текстуалних докумената или изворних кодова програма. Они се чувају у систему са .ткт проширење. Док радите на Ц коду, можда ћете морати да прочитате текстуалну датотеку као део вашег пројекта или да добијете помоћ од текстуалне датотеке. Уместо да се вратите на локацију да бисте прочитали текстуалну датотеку, боље је да је прочитате унутар кода.

Овај чланак говори о корисним начинима читања текстуалне датотеке у програмском језику Ц.

Прочитајте текстуалну датотеку у Ц

Постоје четири метода за читање текстуалне датотеке у Ц, а то су.







Метод 1: Коришћење функције фсцанф() за читање текстуалне датотеке у Ц

Тхе фсцанф() функција је стандардна библиотечка функција која узима низ аргумената и претвара их у вредности које може да користи ваш програм. Проналази низ формата унутар датотеке и враћа стринг формата када чита из датотеке. Низ формата мора бити затворен у наводницима (“ ”) тако да их ваш програм не тумачи као део сопствене синтаксе.



Тхе фсцанф() функција чита податке на места предвиђена ставкама у листи аргумената. Сви уноси листе аргумената морају да упућују на променљиве чији се типови подударају са спецификацијама типа у стрингу формата.



Даје или ЕОФ (крај датотеке) или број променљивих са вредностима које су им додељене.





Погледајмо пример за читање текстуалне датотеке помоћу фсцанф() функција:

#инцлуде <стдио.х>
инт маин ( )
{
ФИЛЕ * птр = фопен ( 'име_датотеке.ткт' , 'р' ) ;
ако ( птр == НУЛЛ ) {
принтф ( 'таква датотека не постоји.' ) ;
повратак 0 ;
}
цхар буф [ 100 ] ;
док ( фсцанф ( птр, '%с' , буф ) == 1 )
принтф ( „%с ' , буф ) ;
повратак 0 ;
}

У овом коду, фопен() функција се користи за отварање датотеке под променљивом показивача птр. фсцанф() функција се затим користи за читање датотеке, а затим за штампање њеног садржаја.



Излаз

Метод 2: Коришћење функције фреад() за читање текстуалне датотеке у Ц

Податке из датотеке чита Фреад() методу и чува се у баферу. До броја ставки се читају у бафер низа помоћу фреад() функцију из улазног тока, која се испоручује као аргумент функције.

Када се укупан број ставки успешно прочита, враћа се објекат сизе_т. Ако се ова вредност разликује од вредности коју је навео програм, или је дошло до грешке или је достигнут крај датотеке.

#инцлуде <стдио.х>
инт маин ( )
{
цхар бафер [ 33 ] ;
ФИЛЕ * стреам;
поток = фопен ( 'име_датотеке.ткт' , 'р' ) ;
инт цоунт = фреад ( & бафер, сизеоф ( цхар ) , 33 , стреам ) ;
фцлосе ( поток ) ;
принтф ( „Подаци прочитани из датотеке: %с ' , тампон ) ;
принтф ( „Број прочитаних елемената: %д“ , цоунт ) ;
повратак 0 ;
}

У овом коду, фопен() функција се користи за отварање датотеке, а затим фреад() функција се затим користи за читање датотеке, а затим за штампање њеног садржаја. 33 показује број знакова које ће прочитати из датотеке.

Излаз

Метод 3: Коришћење функције фгетс() за читање текстуалне датотеке у Ц

Са фгетс() функција, линија се чита из наведеног тока и чува у одговарајућој променљивој стринга. Када се прочитају (н-1) карактери, знак новог реда или крај датотеке, или шта год се прво догоди, програм се завршава. Ако је функција успешна, враћа се исти низ. Садржај стринга се задржава на месту и нулти показивач се јавља ако функција погоди крај датотеке без прочитаних знакова.

У случају неуспеха, пружа нулти показивач.

#инцлуде <стдио.х>
инт маин ( ) {
ФИЛЕ * фп;
цхар стр [ 60 ] ;
фп = фопен ( 'филе.ткт' , 'р' ) ;
ако ( фп == НУЛЛ ) {
перрор ( „Грешка при отварању датотеке“ ) ;
повратак ( - 1 ) ;
}
ако ( фгетс ( стр, 100 , фп ) ! =НУЛЛ ) {
ставља ( стр ) ;
}
фцлосе ( фп ) ;
повратак ( 0 ) ;
}

У овом коду, филе.ткт датотеку отвара фопен() функција а затим фгетс() функција се затим користи за читање стрингова у датотеци и њихово штампање. 100 показује број стрингова које ће прочитати.

Излаз

Метод 4: Коришћење функције фгетц() за читање текстуалне датотеке у Ц

Тхе фгтец() функција се користи за читање знакова један по један. Функција затим враћа АСЦИИ код карактера који је прочитала. Враћа знак који је био присутан на наведеном месту показивача датотеке. Показивач датотеке затим прелази на следећи знак. Ако постоји грешка или показивач дође до краја датотеке, ова функција враћа ЕОФ (Енд-Оф-Филе).

#инцлуде <стдио.х>
инт маин ( )
{
ФИЛЕ * фп = фопен ( 'филе.ткт' , 'р' ) ;
ако ( фп == НУЛЛ )
повратак 0 ;
урадите {
цхар ц = фгетц ( фп ) ;
ако ( феоф ( фп ) )
пауза ;
принтф ( '%ц' , ц ) ;
} док ( 1 ) ;
фцлосе ( фп ) ;
повратак ( 0 ) ;
}

филе.ткт ” датотеку отвара фопен() функција у овом коду под променљивом показивача фп. Знакови датотеке се затим читају помоћу фгетц() метод, који штампа знакове који су прочитани.

Излаз

Закључак

Читање датотека је неопходност за сваког корисника рачунара, а посебно за програмера, важно је да може да приступи датотекама користећи свој код. Стога су 4 методе поменуте горе у чланку за читање а текстуалну датотеку користећи Ц језик. фсцанф() и фреад() се користе за читање датотека на сличан начин, са изузетком да фреад() омогућава нам да одредимо број знакова које корисник жели да прочита, док фгетс() се користи за читање датотеке ред по ред, и фгетц() користи се за читање датотеке карактер по карактер.