Artikel Terbaru

4 Keunggulan Utama Bitcoin

Sebelum membicarakan tentang bitcoin, terlebih dahulu mari pahami apa yang dimaksud dengan uang. Apa sebenarnya yang dimaksud dengan uang? Pada dasarnya, uang adalah segala sesuatu yang mewakili nilai tertentu.

2 Solusi Utama untuk Fgets dan Gets Ketika Digunakan Setelah Scanf pada Bahasa C

Perhatikan contoh sederhana program bahasa C berikut ini. Program tersebut membaca nilai integer menggunakan scanf(), kemudian membaca sebuah string menggunakan fgets().

// Program bahasa C untuk

// mendemonstrasikan

// permasalahan ketika fgets()

// atau gets() digunakan

// setelah scanf() pada 

// bahasa C

#include<stdio.h>

 

int main()

{

int x;

char str[100];

scanf("%d", &x);

fgets(str, 100, stdin);

printf("x = %d, str = %s", x, str);

return 0;

}

Input:
10
test

Output:
x = 10, str = 

Permasalahan yang terjadi pada kode program sebelumnya adalah scanf() menbaca nilai integer dan melepaskan sebuah karakter baris baru pada buffer. Sehingga fgets() hanya membaca baris baru dan string "test" diabaikan oleh program.

Permasalahan yang sama juga muncul ketika scanf() digunakan dalam sebuah looping.

// Contoh program dalam

// bahasa C yang digunakan

// untuk mendemonstrasikan

// permasalahan ketika scanf()

// digunakan dalam sebuah

// looping

#include<stdio.h>

 

int main()

{

char c;

printf("......Tekan 'q' untuk"

" keluar......\n");

 

do

{

printf("Masukkan karakter\n");

scanf("%c", &c);

printf("%c\n", c);

}

while (c != 'q');

 

return 0;

}

Input:
a
b
q

Output:
......Tekan 'q' untuk keluar......
Masukkan karakter
a
Masukkan karakter

Masukkan karakter
b
Masukkan karakter

Masukkan karakter
q

Dapat disadari bahwa program mencetak hasil dengan ekstra karakter enter diikuti satu ekstra baris baru. Hal ini terjadi karena setiap scanf() meninggalkan sebuah karakter baris baru pada buffer yang kemudian terbaca olen scanf selanjutnya.

Solusi Permasalahan
  • satu, Dapat dibuat dengan cara menjadikan scanf() membaca baris baru menggunakan ekstra "\n", yaitu scanf("%d\n,&x"). Faktanya scanf("%d",&x) juga dapat bekerja pada program (catatan: dengan spasi ekstra).
  • dua, Dapat ditambahkan getchar() setelah scanf() untuk membaca ekstra baris baru.

Komentar

  1. hmm perpertinya materi kali ini agak sulit untuk dipelajari dari materi sebelumnya.

    BalasHapus
  2. Apa yang dimaksud dengan scanf, trus gunanya apa?

    BalasHapus
    Balasan
    1. Dalam bahasa pemrograman c, fungsi scanf() adalah salah satu fungsi yang umum digunakan untuk mengambil nilai inputan dari pengguna atau user yang menjalankan program tersebut. Fungsi scanf() membaca nilai input yang telah diformat dari input standar seperti keyboard atau input lainnya yang kemudian diteruskan ke komputer.

      Hapus
    2. Fungsi dari penggunaan scanf dalam bahasa C adalah untuk mengidentifikasi karakter atau masukkan apapun dari user atau pengembang. Fungsi scanf merupakan fungsi inbuilt dalam setiap paket C yang sudah dideklarasikan pada file library dalam bahasa C.

      Hapus
  3. hmm berarti penggunaan dari fungsi scanf pada bahasa C, sifatnya tidak terlalu sesederhana seperti yang dijelaskan pada panduan dasar.

    BalasHapus

Posting Komentar

Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung. :D

Catatan: setiap iklan yang ditayangkan pada blog ini bersumber dari google adsense. Dengan jenis iklan yang dipilih adalah, sebagai berikut.

POIN 1, Iklan yang ditampilkan hanya boleh berbahasa indonesia atau berbahasa inggris. Tidak menerima jenis iklan dalam bahasa yang lain selain yang telah disebutkan karena blog ini dibuat untuk para pengunjung dari negara atau orang yang berbahasa Indonesia.

POIN 2, Setiap gambar yang ditampilkan pada iklan sifatnya tidak mengganggu para pengunjung yang melihat blog, atau tidak boleh menampilkan gambar yang bersifat menjijikkan atau merangsang rasa mual.

POIN 3, Jenis iklan yang dipasang bukan merupakan iklan spam, atau berisi dan mengarahkan pengunjung ke alamat yang berbahaya atau bersifat penipuan.

POIN 4, Segala bentuk iklan tunduk dan patuh pada ketentuan dari pihak Adsense google dan pemilik blog.

POIN 5, Segala jenis iklan yang tidak bertentangan dengan poin 1-4 yang dijelaskan sebelumnya, maka iklan tersebut dapat ditampilkan pada blog.

POIN 6, Jika ada pihak ketika yang ingin memasang iklan pada blog ini secara langsung, maka dapat menghubungi pemilik blog melalui kontak 0882 3218 8316.



~ Ikatlah Ilmu dengan Memostingkannya ~

Hot Artikel

Enkapsulasi pada Java

Perbedaan stdio.h dan stdlib.h pada Bahasa C

4 Contoh Program Java dan Multiple Inheritance

6 Tahap Utama dalam Melakukan Kompilasi Program Hello World Java

3 Jenis Utama Looping pada Java