Perbedaan antara gets dan scanf pada bahasa C

Untuk melakukan input dari user pada bahasa C umumnya programmer pemula menggunakan scanf namun, setelah masuk lebih dalam lagi programmer akan tahu apa kekurangan dari penggunaan scanf. Yap, scanf memang sering dipakai pada bahasa C. Scanf umumnya sering digunakan untuk melakukan inputan dari si user. Namun, ada kekurangan dari penggunaan scanf ini yakni, dimana apabila user melakukan inputan dengan spasi maka program akan tidak berjalan dengan semestinya. Ini contoh source code yang memperlihatkan kelemahan dari scanf.



#include<stdio.h>
main()
{
char nama[50];

clrscr();
printf("Masukkan nama lengkap Anda : "); scanf("%s", &nama);
printf("\n\nNama lengkap Anda : %s", nama);

getch();
}

Gimana sudah tahu kan apa kekurangannya dari scanf ? Scanf sebenarnya digunakan untuk melakukan inputan yang tidak bernilai spasi. Jika terdapat inputan spasi maka scanf menganggap sebagai akhir dari inputan si user. Tapi, ada inputan khusus yang lebih efektif jika user dituntut untuk melakukan inputan nama lengkap atau yang berbabu variable string. Anda bisa gunakan gets untuk source code nya. Berikut ini contoh dari penggunaan gets dan rasakan perbedaannya dengan scanf.

#include<stdio.h>
main()
{
char nama[50];

clrscr();
printf("Masukkan nama lengkap Anda : "); gets(nama);
printf("\n\nNama lengkap Anda : %s", nama);

getch();
}

Gimana ? sudah tahu kan mana yang lebih tepat digunakan untuk melakukan inputan string dan tipe data lainnya.

1 comment

Anda boleh berkomentar di blog saya tapi, tetap jagalah kesopanan dan nilai - nilai etika Anda ketika berkomentar.

Visitors