Serial Tutorial C (8) : printf format identifiers

Mari kita buat baris program seperti berikut :

#include <stdio.h>
int main(void) {
        int a;
        for (a=0; a<=16;a++) {
        printf(a);
        printf("\n");
        }
 return 0;
 }

Kita berharap bahwa keluarannya adalah :

 0
 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16

Tapi ternyata yang kita dapat adalah pesan kesalahan saat kompilasi :

pangkatdua.c:9:5: warning: passing argument 1 of ‘printf’ makes pointer from integer without a cast
 /usr/include/stdio.h:359:12: note: expected ‘const char * __restrict__’ but argument is of type ‘int’
 pangkatdua.c:9:5: warning: format not a string literal and no format arguments

Perhatikan, bahwa tertulis pesan expected ‘const char * __restrict__’ but argument is of type ‘int’ –> Ini menunjukkan bahwa printf membutuhkan sebuah pengenal bagi tipe data yang akan kita munculkan.
Secara sederhana dan sebagai pengantar, berikut daftar pengenal (identifiers) tersebut :

%d %i Decimal signed integer.
%o Octal integer.
%x %X Hex integer.
%u Unsigned integer.
%c Character.
%s String.
%f double
%e %E double.
%g %G double.
%p pointer.
%n Number of characters written by this printf.No argument expected.
%% %.No argument expected.

Sekarang mari kita perbaiki program kita.
Karena a disana bernilai integer maka kita perbaiki baris printf nya menjadi :

printf ("%d", a);

Kompilasi lagi program kita, maka kita akan mendapatkan hasil urutan angka 1 s.d. 16
Selamat mencoba
Bersambung … (rezaervani@gmail.com)
Serial Sebelumnya

.

3 Trackbacks / Pingbacks

  1. Serial Tutorial C (9) : Latihan 1 – Membuat Program Pemangkatan « Tanya Reza Ervani Tentang LINUX
  2. Serial Tutorial C (10) : Membaca Input Keyboard dengan scanf() « Tanya Reza Ervani Tentang LINUX
  3. Serial Tutorial C (11) : makefile sederhana « Tanya Reza Ervani Tentang LINUX

Leave a Reply

Your email address will not be published.


*