Input Data Bahasa C Menggunakan Fgets dan Gets Setelah Scanf
// 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;
}
test
Output:
x = 10, str =
// 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;
}
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
- 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).
- Dapat ditambahkan getchar() setelah scanf() untuk membaca ekstra baris baru.
- 6 Jenis Utama Operator Bitwise pada Bahasa C, Beserta 3 Fakta Menariknya [klik]
- 5 Fakta tentang Operator Precedence dan Asosiatifitas pada Bahasa C [klik]
- Penjelasan Singkat, Perintah Evaluasi dari Operand dalam Bahasa C [klik]
- 3 Fungsi Utama Tanda Koma pada Bahasa C dan C++ [klik]
- 2 Fungsi Utama Operator Sizeof pada Bahasa C [klik]
- 2 Cara Penggunaan Operand untuk Operator Sizeof pada Bahasa C [klik]
- 2 Fungsi Utama Operator Koma dalam Bahasa C [klik]
hmm perpertinya materi kali ini agak sulit untuk dipelajari dari materi sebelumnya.
BalasHapusApa yang dimaksud dengan scanf, trus gunanya apa?
BalasHapusDalam 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.
HapusFungsi 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.
Hapushmm berarti penggunaan dari fungsi scanf pada bahasa C, sifatnya tidak terlalu sesederhana seperti yang dijelaskan pada panduan dasar.
BalasHapus