[ HTML ] [ Java ] [ Bahasa C ]


Minggu, Mei 02, 2021

Scanf dan Fscanf pada Bahasa C

Kebanyakan para pengembang telah mengetahui fungsi utama dari scanf. Berikut akan diberikan beberapa info tambahan yang perlu diketahui.

Bagaimana cara membuat read only menjadi bagian dari input yang dibutuhkan pada sebuah program? contoh, pertimbangkan beberapa input stream yang mengandung hanya karakter dan diikuti olen integer atau float. Dan yang dibutuhkan hanya scan only untuk integer atau float seperti contoh berikut ini:

Input: “this is the value 100”,
Output: value read is 100

Input : “this is the value 21.2”,
Output : value read is 21.2

// Program bahasa C untuk

// mendemonstrasikan bahwa

// user dapat mengabaikan

// beberapa string dalam

// scanf()

#include <stdio.h>

 

int main()

{

int a;

scanf("Ini adalah nilai %d", &a);

printf("Nilai inputan yang"

" dibaca : a = %d", a);

return 0;

}

 

// Input : Ini adalah nilai 

// 100

 

// Output : Nilai inputan yang

// dibaca : a = 100


Sekarang diasumsikan bahwa tidak diketahui karakter apakah yang mendahuluinya tetapi, dapat diketahui secara pasti bahwa nilai terakhir yang diketahui adalah integer. Bagaimana cara untuk melakukan scan nilai terakhir sebagai nilai integer?

Berikut solusi yang hanya dapat bekerja jika input string tidak memiliki spasi.

// Contoh program bahasa C

// untuk mendemonstrasikan

// penggunaan dari *s

#include<stdio.h>

 

int main()

{

int a;

scanf("%*s %d", &a);

printf("Nilai yang terbaca :"

" a=%d",a);

return 0;

}

 

// Input: "blablabla 25"

 

// Output: Nilai yang terbaca

// : 25


Penjelasan: %*s pada scanf digunakan untuk mengabaikan beberapa input yang diperlukan. Pada kondisi ini akan mengabaikan input sampai spasi selanjutnya atau baris baru. Sama seperti jika mengetik %*d, maka akan diabaikan nilai integer-nya sampai spasi selanjutnya atau baris baru.

Fakta tersebut mungkin terlihat seperti cara yang tidak terlalu berguna, namun untuk memahami kegunaannya, perhatikan fungsi fscanf() berikut ini.

fscanf(): Jika terlalu banyak menggunakan sintak seperti contoh sebelumnya, maka dapat digunakan pendekatan lain dengan menggunakan fscanf().

int fscanf(FILE *ptr, const char *format, ...)

fscanf menbaca dari sebuah file yang ditunjuk oleh FILE pointer (ptr), ketimbang membaca langsung dari input stream.

Perhatikan teks file abc.txt

NAME    AGE   CITY
abc     12    hyderbad
bef     25    delhi
cce     65    bangalore

Sekarang akan dilakukan read only city field dari teks file sebelumnya, mengacuhkan semua field yang lain.

// Program bahasa C untuk

// mendemonstrasikan fscanf

// dan kegunaannya pada

// program

#include<stdio.h>

 

int main()

{

 

FILE* ptr = fopen("abc.txt","r");

 

if (ptr==NULL)

{

printf("no such file.");

return 0;

}

 

// Diasumsikan bahwa file

// abc.txt memiliki beberapa

// isi konten sebagai berikut:

 

// NAME AGE CITY

// abc  12 hyderbad

// bef  25 delhi

// cce  65 bangalore

 

char* buf[100];

while (fscanf(ptr,"%*s %*s %s ",buf)==1)

printf("%s\n", buf);

 

return 0;

}

Output:
CITY
hyderbad
delhi
bangalore

5 komentar:

  1. Dalam bahasa pemrograman C, fungsi scanf() adalah salah satu fungsi yang secara umum digunakan untuk mengambil inputan dari pengguna atau user. Fungsi scanf() membaca nilai inputan yang telah diformat dari input standar seperti keyboard.

    BalasHapus
  2. Dalam bahasa pemrograman C, scanf adalah fungsi yang digunakan untuk membaca data yang telah diformat dari stdin (yaitu, suatu stream dari input standar, yang biasanya berupa inputan keyboard) dan kemudian menuliskan hasilnya ke dalam argumen yang telah diberikan.

    BalasHapus
  3. fscanf() adalah fungsi yang digunakan untuk membaca sekumpulan karakter dari file dalam bahasa pemrograman C. Fungsi tersebut membaca sebuah kata dari file dan mengembalikan EOF di bagian akhir file.

    BalasHapus
  4. Apa yang dilakukan fungsi fscanf() dalam bahasa pemrograman C?

    BalasHapus
    Balasan
    1. Fungsi fscanf() digunakan untuk membaca nilai inputan yang diformat dari file. Fungsi tersebut bekerja seperti halnya fungsi scanf() tetapi bukannya membaca data dari input standar, melainkan fungsi tersebut membaca data dari file secara langsung.

      Hapus

Respon komentar 7 x 24 jam, so please be patient :D