Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

ตัวระบุรูปแบบในC


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