ตัวระบุรูปแบบใช้ใน C เพื่อวัตถุประสงค์อินพุตและเอาต์พุต การใช้แนวคิดนี้ คอมไพเลอร์สามารถเข้าใจได้ว่าข้อมูลประเภทใดที่อยู่ในตัวแปรระหว่างการป้อนข้อมูลโดยใช้ฟังก์ชัน scanf() และการพิมพ์โดยใช้ฟังก์ชัน printf() นี่คือรายการของตัวระบุรูปแบบ
| ตัวระบุรูปแบบ | พิมพ์ |
|---|---|
| %c | ตัวละคร |
| %d | ลงนามจำนวนเต็ม |
| %e หรือ %E | สัญกรณ์วิทยาศาสตร์ของการลอยตัว |
| %f | ค่าโฟลต |
| %g หรือ %G | คล้ายกับ %e หรือ %E |
| %hi | ลงนามจำนวนเต็ม (สั้น) |
| %hu | จำนวนเต็มไม่ได้ลงนาม (แบบสั้น) |
| %i | จำนวนเต็มไม่ได้ลงนาม |
| %l หรือ %ld หรือ %li | ยาว |
| %lf | สองเท่า |
| %Lf | ยาวสองเท่า |
| %lu | Unsigned int หรือ unsigned long |
| %lli หรือ %lld | ยาวไปๆ |
| %llu | ไม่มีเครื่องหมาย long long |
| %o | การแสดงเลขฐานแปด |
| %p | ตัวชี้ |
| %s | สตริง |
| %u | ไม่ได้ลงชื่อ |
| %x หรือ %X | การแสดงเลขฐานสิบหก |
| %n | พิมพ์อะไรไม่ได้ |
| %% | พิมพ์ % ตัวอักษร |
นี่คือตัวระบุรูปแบบพื้นฐาน เราสามารถเพิ่มส่วนอื่นๆ ด้วยตัวระบุรูปแบบได้ เหล่านี้เป็นเหมือนด้านล่าง −
-
เครื่องหมายลบ (-) บอกการจัดตำแหน่งด้านซ้าย
-
ตัวเลขหลัง % ระบุความกว้างของฟิลด์ต่ำสุด หากสตริงน้อยกว่าความกว้าง จะมีการเติมช่องว่าง
-
จุด (.) ใช้เพื่อแยกความกว้างและความแม่นยำของฟิลด์
ตัวอย่าง
#include <stdio.h>
main() {
char ch = 'B';
printf("%c\n", ch); //printing character data
//print decimal or integer data with d and i
int x = 45, y = 90;
printf("%d\n", x);
printf("%i\n", y);
float f = 12.67;
printf("%f\n", f); //print float value
printf("%e\n", f); //print in scientific notation
int a = 67;
printf("%o\n", a); //print in octal format
printf("%x\n", a); //print in hex format
char str[] = "Hello World";
printf("%s\n", str);
printf("%20s\n", str); //shift to the right 20 characters including the string
printf("%-20s\n", str); //left align
printf("%20.5s\n", str); //shift to the right 20 characters including the string, and print string up to 5 character
printf("%-20.5s\n", str); //left align and print string up to 5 character
} ผลลัพธ์
B 45 90 12.670000 1.267000e+001 103 43 Hello World Hello World Hello World Hello Hello
เราสามารถใช้ตัวระบุรูปแบบเหล่านี้สำหรับฟังก์ชัน scanf() ในลักษณะเดียวกันได้ ดังนั้นเราจึงสามารถนำอินพุตจาก scanf() เหมือนกับที่เราพิมพ์ด้านบนนี้