scanf(), fscanf()

Kategori: C , 29 Haziran 2019 , JanFranco


scanf fonksiyonu konsoldan girilen bilgileri okur. Input fonksiyonudur. Bir örnek yapalım:


int a;

scanf("%d", &a);
Burada scanf fonksiyonu a'nın değerini değiştireceği için, a'nın adresine ihtiyaç duyar. Bu sebeple &a şeklinde bir bilgi gireriz. %d diyerek alınacak datanın bir integer olduğunu belirttik. Diğer percent-code'lar:

%d	->	Integer değerleri okur
%f	->	Float değerleri okur
%s	->	String değerleri okur
%u	->	Unsigned integer değerleri okur
%x	->	Unsigned hexidecimal integer değerleri okur
%o	->	Unsigned octal integer değerleri okur
%i	->	Integer değerleri okur
%c	->	Char değerleri okur
%p	->	Pointer değerleri okur
%%	->	% karakterini okur
scanf ile tek bir değer okuma limitimiz yoktur. Çoklu bir şekilde değerleri okuyabiliriz:

scanf("%f %d %s", &d, &a, &e);
Diyelim şu şekilde bir veri girilecek: "123.123 123 Hello!". Ve biz ortadaki 123 değerini almak istemiyoruz. Şu şekilde bunu yapabiliriz:

scanf("%f %*d %s", &d, &e);
% ile format arasına bir yıldız işareti koyarak, orada bir integer değer olduğunu ve onu okumak istemediğimizi belirtebiliriz. Ayrıca belirli sayıda değer de okuyabiliriz şu şekilde:

scanf("%10c", s);
Burada 10 adet karakter okuduk. scanf fonksiyonu konsoldan okuma işlemi yaparken, fscanf dosyalardan okuma işlemi yapar. Aşağıdaki şekilde kullanılır:

fscanf(<FILE Pointer>, <Data to read>, ...);
Örnek üzerinden anlatalım:

int main () {
   char str1[10], str2[10], str3[10];
   int year;

   FILE *fp;
   fp = fopen("file.txt", "r");

   fscanf(fp, "%s %s %s %d", str1, str2, str3, &year);
   
   printf("Read String1 |%s|\n", str1 );
   printf("Read String2 |%s|\n", str2 );
   printf("Read String3 |%s|\n", str3 );
   printf("Read Integer |%d|\n", year );

   fclose(fp);
   
   return 0;
}
Burada str1, str2 ve str3 adında 3 adet char array ve year adında bir integer değer tanımladık. file.txt dosyasından okuma işlemi yağacağımızı belirttik. file.txt içerisinde şu yazmakta: "We are in 2019". fscanf fonksiyonu ile sırasıyla 3 string ve bir integer değer alacağımızı, bu değerleri de str1, str2, str3 ve year'a yazacağımızı belirttik. Daha sonra değişkenlere atadığımız değerleri konsola yazdırdık. fclose ile de dosyayı kapattık.


Sonraki Yazı: gets(), fgets()
Yorumlar

Henüz bir yorum bulunmuyor.
Yorum bırakın