Rabu, November 20, 2019

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


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.


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.
Output:
CITY
hyderbad
delhi
bangalore





Related Posts

scanf() dan fscanf() pada bahasa C
Oleh

mohon untuk melakukan koreksi jika terdapat kesalahan pada penulisan blog ini,