ตัวระบุรูปแบบใช้ใน 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() เหมือนกับที่เราพิมพ์ด้านบนนี้