Senin, 04 Juni 2012

Input dan Output Pada string

Waktu semester awal saya pernah dapat soal kuis berupa output string yang dinputkan user. Kesalahan saya adalah ketika melakukan input menggunakan scanf. Kalau menggunakan scanf, string yang ada karakter spasi akan danggap sebagai karakter '\0' atau NULL, kosong. Sehingga ketika ditampilkan ke layar konsol yang tampil hanya kata yang pertama sebelum spasi. Solusinya adalah menggunakan gets, untuk mnampilkannya menggunakan puts. Berikut source yang udah saya edit. Silakan copas ke Dev C++.


#include "stdio.h"
#include "conio.h"
#include "windows.h"//untuk mengaktifkan MessageBox
#include "stdlib.h"



main()
{
    char htl[40],peny[50];
    char kode_ulang;
    int nmk,hgk, lmi;
    float dsk;
    float jby, tbl;
    MessageBox(0,"Program Sewa Hotel \nDipegang khusus untuk Resepsionist","Info Aplikasi",MB_OK);
    kode_ulang='y';
    while(kode_ulang=='y'||kode_ulang=='Y'){
    system("cls");
    printf("================ Program Perhitungan Biaya Penginapan Hotel =================");
    printf("\n\n\nNama Hotel             : "); gets(htl);
    printf("\nNama Penyewa Hotel     : "); gets(peny);
    printf("\nNomor Kamar            : ");scanf("%d",&nmk);
    printf("\nLama Inap (Malam)      : ");scanf("%d",&lmi);
    printf("\nHarga kamar Per Malam  : Rp. ");scanf("%d",&hgk);
   
    jby=hgk * lmi;
    dsk=0.1*jby;
    tbl=jby-dsk;
   
    printf("\n=============================================================================");
    printf("\n\n   Nama Hotel         :");puts(htl);
    printf("\n   Penyewa            :");puts(peny);
    printf("\n-----------------------------------------------------------------------------");
    printf("\n\n   Harga Kamar        : Rp. %d,00",hgk);
    printf("\n   Jumlah Bayar       : Rp. %.0f,00",jby);
    printf("\n   Diskon             : Rp. %.0f,00",dsk);
    printf("\n   Total Bayar        : Rp. %.0f,00",tbl);
    printf("\n-----------------------------------------------------------------------------\n\n");
    MessageBox(0,"Terima Kasih Atas Partisipasinya Menggunakan Program Ini","Terima Kasih",MB_OK);
    if(MessageBox(0,"Apakah ingin menginput lagi???","Konfirmasi",MB_YESNO)==IDYES){
        kode_ulang='y';
    }
    else{
        exit(0);
    }   
    getch();


}

Tidak ada komentar:

Posting Komentar

Poskan Komentar Anda