Bir Metin Dosyasını Okuma ve Tüm Dizeleri C'de Yazdırma

Bir Metin Dosyasini Okuma Ve Tum Dizeleri C De Yazdirma



Bir metin dosyasını okuma ve hepsini yazdırma Teller C programcıları tarafından sıklıkla yapılan önemli bir görevdir. temellerini anlamak önemlidir. okuma A Metin dosyası C'de ve nasıl Yazdır the Teller bu görevi denemeden önce ondan.

Bir metin dosyasının okunması ve içerdiği tüm dizilerin yazdırılması bu makalede C programlama kullanılarak gösterilecektir.







Bir Metin Dosyasını Okuyun ve C'deki Tüm Dizeleri Yazdırın

Bir metin dosyasını okumak ve tüm dizeleri C'de yazdırmak için aşağıdaki gibi dört işlev vardır:



Yöntem 1: fread() İşlevi

veri dosyadan oku ve C işlevi kullanılarak bir tamponda saklanır ekmek() . Bir dizi arabelleğindeki öğeleri saymak için, ekmek() yöntem, işlev parametresi olarak sağlanan giriş akışından okur. Her karakter işlevi okurken, belirtilen giriş akışı için dosya konumu göstergesi ileri doğru hareket eder.



bu ekmek() C'deki yöntem sözdizimine sahiptir.





size_t ekmek ( geçersiz * dizi_arabellek, boyut_t boyut , size_t sayısı, DOSYA * dosya akışı )

Fread() işlev parametrelerine daha ayrıntılı bakalım:



dizi arabelleği: Veriler geçici olarak bir bilgisayarın arabelleğinde, bir bellek alanında tutulur. Bu bağımsız değişken, verileri içerecek arabelleğin belleğindeki yere atıfta bulunan bir işaretçidir. Okumak giriş akışından.

boyut: Bu bağımsız değişken, her blok için giriş akışından kaç bayt veri okunacağının işlevine talimat verir.

saymak: Veri giriş akışından kaç karakterin okunacağını belirtir.

dosya akışı: Bir FILE nesnesine atıfta bulunan bir işaretçidir.

#include
#include
int ana ( ) {
DOSYA * dosya ;
karakter arabelleği [ 100 ] ;
dosya = açık ( 'C_Dosya.txt' , 'R' ) ;
eğer ( dosya == BOŞ ) {
printf ( 'Hata: dosya açılamadı \N ' ) ;
geri dönmek 1 ;
}
int saymak = ekmek ( & arabellek, sizeof ( karakter ) , 100 , dosya ) ;
kapat ( dosya ) ;
printf ( 'Dosyadan okunan veri: %s \N ' , tampon ) ;
printf ( 'Okunan öğe sayısı: %d' , saymak ) ;
kapat ( dosya ) ;
geri dönmek 0 ;
}

Bu örnekte, boyutta bir karakter dizisi tamponu tanımlıyoruz. 100 kullanmadan önce açık() metin dosyasını açmak için C_Dosya.txt okuma modunda. Bir if ifadesi kullanarak, dosyanın başarıyla açılıp açılmadığını belirleriz. Sonraki adım, şu ana kadar okumaktır: 100 kullanarak dosyadan bayt veri ekmek() . Hedef arabellek, bu örnekte arabellek dizisi, yapılacak ilk parametredir. ekmek(). İkinci argüman, boyutu , karakterleri okurken okunacak her bir öğenin boyutunu belirler . Üçüncü girdi okunacak miktardır, bu durumda bu 100 . bu dosya işaretçisi dördüncü parametredir. Son olarak, kullandığımız printf() dosyadan okunan verileri yazdırmak ve fclose() dosyayı kapatmak için Bu programı çalıştırmak, bunun gibi sonuçlara neden olur, eğer C_Dosya.txt :

Çıktı

Yöntem 2: fgets() İşlevi

C dili fgets() yöntem, akıştan str dizesine n karakter okur. bu fgets() yöntem, akıştan karakterleri okumaya devam eder. (n-1) karakterler okundu, yeni satır karakteri algılandı veya dosyanın sonuna (EOF) ulaşıldı.

#include
int ana ( ) {
DOSYA * dosya ;
karakter arabelleği [ 100 ] ;
dosya = açık ( 'C_Dosya.txt' , 'R' ) ;
eğer ( dosya == BOŞ ) {
printf ( 'Hata: dosya açılamadı \N ' ) ;
geri dönmek 1 ;
}
sırasında ( fgets ( tampon, 100 , dosya ) ) {
printf ( 'Dosyadan okunan dize: %s' , tampon ) ;
}
kapat ( dosya ) ;
geri dönmek 0 ;
}

Bu örnek kullanır açık() adlı bir metin dosyasını açmak için C_Dosya.txt boyutta bir karakter dizisi arabelleği bildirdikten sonra okuma modunda 100 . Bir if ifadesi kullanarak, dosyanın başarıyla açılıp açılmadığını belirleriz. Bundan sonra, bir süre döngüsü kullanıyoruz ve fgets() bir dosya işaretçisi kullanarak dosyadan metin satırlarını okumak için. kullanma printf() döngü içinde metnin her satırını yazdırırız. Bu programı çalıştırmak şu çıktıyı sağlayacaktır:

Çıktı

Yöntem 3: fscanf() İşlevi

adı verilen standart bir kitaplık yöntemi fscanf() bir dizi parametreyi kabul eder ve bunları uygulamanızın kullanabileceği değerlere dönüştürür. Sırasında dosyadan okuma , içinde görmeyi beklediği herhangi bir şeyin yerine biçim dizesini döndürür. Yazılımınızın biçim dizesini kendi sözdiziminin bir parçası olarak yorumlamasını önlemek için tırnak işaretleri içine alınmalıdır. ('').

#include
int ana ( ) {
DOSYA * dosya ;
int sayı1, sayı2, sayı3;
dosya = açık ( 'C_Dosya.txt' , 'R' ) ;
eğer ( dosya == BOŞ ) {
printf ( 'Hata: dosya açılamadı \N ' ) ;
geri dönmek 1 ;
}
fscanf ( dosya , '%d %d %d' , & 1 numara, & sayı2, & 3 numara ) ;
printf ( 'Dosyadan okunan sayılar: %d, %d, %d \N ' , sayı1, sayı2, sayı3 ) ;
kapat ( dosya ) ;
geri dönmek 0 ;
}

Bu örnek dosyayı açar C_Dosya.txt önce 3 int değişkeni, num1, num2 ve num3 bildirerek okuma modunda. Bir if ifadesi kullanarak, dosyanın başarıyla açılıp açılmadığını belirleriz. Aşağıdaki adım, kullanarak dosyadan üç sayı okumaktır. fscanf() ve %D biçim belirteci num1, num2 ve num3 değişkenleri, değerlerin tutulduğu yerdir. Son olarak, kullandığımız printf() bu değişkenlerin değerlerinin çıktısını almak ve fclose() dosyayı kapatmak için Bu programı çalıştırmak, aşağıda gösterilen sonuçlara neden olur:

Çıktı

Yöntem 4: fgetc() İşlevi

bir dosya olabilir Okumak kullanarak karakter karakter fgetc() işlev. Bu fonksiyonun okuduğu karakterin ASCII kodu bu fonksiyon tarafından döndürülür. Dosya işaretçisinin belirtilen konumundan gelen karakter döndürülür. Aşağıdaki karakter, dosya işaretçisine göre karakter okunduktan sonra okunur. İşaretçi dosyanın sonundaysa veya bir sorun varsa, bu yöntem bir EOF dosyası döndürür.

#include
int ana ( ) {
DOSYA * dosya ;
c karakteri;
dosya = açık ( 'C_Dosya.txt' , 'R' ) ;
eğer ( dosya == BOŞ ) {
printf ( 'Hata: dosya açılamadı \N ' ) ;
geri dönmek 1 ;
}
sırasında ( ( c = fgetc ( dosya ) ) ! = EOF ) {
printf ( '%C' , C ) ;
}
kapat ( dosya ) ;
geri dönmek 0 ;
}

Bu örnekte, açık() metin dosyasını açma komutu C_Dosya.txt okuma modunda. Bir if ifadesi kullanarak, dosyanın başarıyla açılıp açılmadığını belirleriz. Bundan sonra, bir süre döngüsü kullanıyoruz ve fgetc() dosyadan karakterleri okumak için. Dosyadan alınan karakter değişkene atanır. C kullanılarak yazdırılmadan önce döngü içinde printf (). kadar döngü çalışmaya devam eder. EOF (End of File) sabiti dosyanın sonunu algılar. Bu programı çalıştırmak aşağıdaki sonuçları alır, eğer C_Dosya.txt kelimeyi içerir 'Linuxint'.

Çıktı

Çözüm

Yukarıda özetlenen adımları kullanarak, C şu amaçlarla kullanılabilir: bir metin dosyasını oku Ve tüm dizeleri yazdır Bu içerir. kullanarak başlar. açık() dosyayı açmak için sistem çağrısı, ardından kullanım fscanf(), fread(), fgets(), fgetc() verileri okumak için. Daha sonra, dosya kullanılarak kapatılır. fclose() ve dizeleri yazdırmak için bir for döngüsü kullanılır. Bu tekniklerin kullanılmasıyla C, verilerin verimli bir şekilde okunmasına ve yazdırılmasına yardımcı olmak için kullanılabilir.