Format Specifiers (ตัวกำหนดรูปแบบ)
ในภาษา C %d และ %i เป็น format specifiers โดย %d ระบุชนิดตัวแปรเป็นทศนิยม (decimal) และ %i ระบุชนิดเป็นจำนวนเต็ม (integer) ในการใช้งานจริง ไม่มีความแตกต่างใน printf() ขณะพิมพ์ตัวเลข แต่ใน scanf() จะมีความแตกต่าง: scanf() ตรวจจับฐาน (base) ด้วย %i แต่สมมติฐานฐาน 10 ด้วย %d
ตัวอย่าง (C)
#include <stdio.h>
int main() {
int num1, num2;
int num3, num4;
scanf("%i%d", &num1, &num2);
printf("%i\t%d\n", num1, num2);
num3 = 010;
num4 = 010;
printf("%i\t%d", num3, num4);
return 0;
}
เอาต์พุต
32767 -498932064 8 8
ที่นี่ 010 เป็นเลขฐานแปด (octal) scanf อ่านเป็น 10 ด้วย %d และอ่านเป็น 8 ด้วย %i printf แสดงผลถูกต้องในทั้งสองกรณีสำหรับเลขฐานแปด