C'de Metin Dosyası Nasıl Okunur?

C De Metin Dosyasi Nasil Okunur



metin dosyaları bilgisayarlarda en çok kullanılan dosya türleri arasındadır. Metin belgelerini veya program kaynak kodlarını depolamak gibi çok çeşitli görevler için kullanılabilirler. ile sisteme kaydedilirler. .txt eklenti. C kodu üzerinde çalışırken projenizin bir parçası olarak bir metin dosyasını okumanız veya metin dosyasından yardım almanız gerekebilir. Bir metin dosyasını okumak için konuma geri dönmek yerine, onu bir kod içinde okumak daha iyidir.

Bu makale, C programlama dilinde bir metin dosyasını okumanın yararlı yollarını tartışmaktadır.

C'de Bir Metin Dosyasını Okuyun

C'de bir metin dosyasını okumak için dört yöntem vardır.







Yöntem 1: C'de Bir Metin Dosyasını Okumak İçin fscanf() İşlevini Kullanma

bu fscanf() işlev, bir dizi bağımsız değişkeni alan ve bunları programınız tarafından kullanılabilecek değerlere dönüştüren standart bir kitaplık işlevidir. Dosyanın içinde bir biçim dizesi bulur ve dosyadan okurken bir biçim dizesi döndürür. Biçim dizesi, programınız tarafından kendi sözdiziminin bir parçası olarak yorumlanmaması için tırnak işaretleri (“ ”) içine alınmalıdır.



bu fscanf() işlev, bağımsız değişken listesindeki öğeler tarafından sağlanan yerlere verileri okur. Argüman listesi girişlerinin tümü, türleri format-string'deki tür belirticileriyle eşleşen değişkenlere işaret etmelidir.



EOF (dosya sonu) veya kendilerine atanan değerlerle değişken sayısını verir.





Kullanarak bir metin dosyasını okumak için bir örneğe bakalım. fscanf() işlev:

#include
int ana ( )
{
DOSYA * ptr = açık ( 'dosya_adı.txt' , 'R' ) ;
eğer ( ptr == BOŞ ) {
printf ( 'böyle bir dosya yok.' ) ;
geri dönmek 0 ;
}
char buf [ 100 ] ;
sırasında ( fscanf ( ptr, '%S ' , buf ) == 1 )
printf ( '%S \N ' , buf ) ;
geri dönmek 0 ;
}

Bu kodda, açık() işlev ptr işaretçi değişkeni altındaki dosyayı açmak için kullanılır. fscanf() işlev daha sonra dosyayı okumak ve ardından içeriğini yazdırmak için kullanılır.



Çıktı

Yöntem 2: C'de Bir Metin Dosyasını Okumak için fread() İşlevini Kullanma

Dosyadaki veriler tarafından okunur ekmek() yöntemi ve bir arabellekte saklanır. Sayıya kadar öğe, tarafından bir dizi arabelleğine okunur. ekmek() işlev bağımsız değişkeni olarak sağlanan giriş akışından işlev.

Toplam öğe sayısı başarıyla okunduğunda, bir size_t nesnesi döndürülür. Bu değer program tarafından belirtilen değerden farklı ise ya bir hata oluşmuştur ya da dosyanın sonuna gelinmiştir.

#include
int ana ( )
{
karakter arabelleği [ 33 ] ;
DOSYA * aktarım;
akış = açık ( 'dosya_adı.txt' , 'R' ) ;
int sayısı = ekmek ( & arabellek, sizeof ( karakter ) , 33 , aktarım ) ;
kapat ( aktarım ) ;
printf ( 'Dosyadan okunan veriler: %s \N ' , tampon ) ;
printf ( 'Okunan öğe sayısı: %d' , saymak ) ;
geri dönmek 0 ;
}

Bu kodda, açık() işlevi dosyayı açmak için kullanılır ve ardından ekmek() işlev daha sonra dosyayı okumak ve ardından içeriğini yazdırmak için kullanılır. 33, dosyadan okuyacağı karakter sayısını gösterir.

Çıktı

Yöntem 3: C'de Bir Metin Dosyasını Okumak İçin fgets() İşlevini Kullanma

İle fgets() işlevi, belirtilen akıştan bir satır okunur ve karşılık gelen dize değişkeninde saklanır. (n-1) karakteri, yeni satır karakteri veya dosya sonu okunduğunda veya hangisi önce gelirse program biter. Fonksiyon başarılı olursa aynı stringi döndürür. Dizenin içeriği yerinde tutulur ve işlev okunan karakter olmadan Dosya Sonu'na ulaşırsa bir boş işaretçi oluşur.

Arıza durumunda boş gösterici sağlar.

#include
int ana ( ) {
DOSYA * fp;
karakter dizisi [ 60 ] ;
fp = açık ( 'dosya.txt' , 'R' ) ;
eğer ( fp == BOŞ ) {
korku ( 'Dosyayı açarken hata' ) ;
geri dönmek ( - 1 ) ;
}
eğer ( fgets ( sokak, 100 , sf ) ! =BOŞ ) {
koyar ( str ) ;
}
kapat ( sf ) ;
geri dönmek ( 0 ) ;
}

Bu kodda, dosya.txt dosya tarafından açılır açık() işlev ve sonra fgets() işlev daha sonra dosyadaki dizeleri okumak ve ardından bunları yazdırmak için kullanılır. 100, okuyacağı dizi sayısını gösterir.

Çıktı

Yöntem 4: C'de Bir Metin Dosyasını Okumak İçin fgetc() İşlevini Kullanma

bu fgtec() karakterleri tek tek okumak için kullanılır. İşlev daha sonra okuduğu karakterin ASCII kodunu döndürür. Dosya işaretçisinin belirtilen yerinde bulunan karakteri döndürür. Dosya işaretçisi daha sonra bir sonraki karaktere geçer. Bir hata varsa veya işaretçi dosyanın sonuna ulaşırsa, bu işlev bir EOF (Dosya Sonu) döndürür.

#include
int ana ( )
{
DOSYA * fp = açık ( 'dosya.txt' , 'R' ) ;
eğer ( fp == BOŞ )
geri dönmek 0 ;
Yapmak {
karakter c = fgetc ( sf ) ;
eğer ( feof ( sf ) )
kırmak ;
printf ( '%C' , C ) ;
} sırasında ( 1 ) ;
kapat ( sf ) ;
geri dönmek ( 0 ) ;
}

dosya.txt ” dosyası tarafından açılır. açık() bu kodda işaretçi değişkeni fp altında işlev görür. Dosyanın karakterleri daha sonra kullanılarak okunur. fgetc() okunan karakterleri yazdıran yöntem.

Çıktı

Çözüm

Dosyaları okumak her bilgisayar kullanıcısı için bir zorunluluktur ve özellikle bir geliştirici için kendi kodunu kullanarak dosyalara erişebilmesi önemlidir. Bu nedenle yukarıda makalede bir okuma için 4 yöntemden bahsedilmiştir. Metin dosyası C Dili kullanarak. fscanf() Ve ekmek() dışında benzer şekilde dosyaları okumak için kullanılır. ekmek() kullanıcının okumak istediği karakter sayısını belirlememize izin verirken, fgets() bir dosyayı satır satır okumak için kullanılır ve fgetc() bir dosyayı karakter karakter okumak için kullanılır.