[ภาษาซี] printf() ฟังก์ชันมหัศจรรย์
posted on 16 May 2009 12:45 by mistertun in CProgramming
printf - ปริ๊นท์-เอฟ เป็นฟังก์ชันมหัศจรรย์จริงๆครับ มันทำอะไรไำด้มากมาย
หลักการง่ายๆคือ มันจะเอาสิ่งที่อยู่ในวงเล็บไปแสดงผลทางหน้าจอครับ
เช่น printf("Good morning C"); มันก็จะเอาข้อความในวงเล็บไปแสดงผล แต่ต้องมีเครื่องหมายคำพูดนะครับ
แล้วถ้าอยากขึ้นบรรทัดใหม่ล่ะ
ถ้าอยากขึ้นบรรทัดใหม่ ใช้เครื่องหมาย \n (แบ็คสแลช+เอ็น) ครับ
printf("Hello\nGood morning\nC is easy");
ผลลัพธ์
Hello
Good morning
C is easy
นอกจากนี้ยังมี \t = เลื่อนไป 6 ตัวอักษร
\b = เลื่อนกลับไป 1 ตัวอักษร
\a = ส่งเสียง บี๊บ สั้นๆ
ถ้าต้องการแสดงผลเครื่องหมาย backSlash จะทำยังไงล่ะ
เวลา จะแสดงเครื่องหมาย \ หรือว่า " ทางหน้าจอ
ถ้าพิมพ์ลงไปตรงๆมันจะใช้งานไม่ได้คับ (ลองดูดิ) ให้ใช้วิธีนี้แทน
คือถ้าต้องการแสดง \ ก็ให้พิมพ์ \\ ถ้าต้องการแสดง " ก็ให้พิมพ์ \" ครับ
printf("\\n is new line \nAnd \" is double quote"); ลองเอาไปใส่ในโปรแกรมดูครับ
ผลลัพธ์จะเป็ืน
\n is new line
" isdouble quote
การแสดงผลการคำนวณด้วย printf
printf ไมได้แสดงได้แต่ข้อความโง่ๆเท่านั้น เรายังสามารถให้มันแสดงค่าจากการคำนวณไำด้ด้วย
รูปแบบคือ printf("%d",นิพจน์); (นิพจน์อยู่หลังคอมม่าซึ่งอยู่นอกเครื่องหมายคำพูดนะครับ) เมื่อเราใส่นิพจน์เข้าไป โปรแกรมจะหาคำตอบและแสดงผลในส่วนที่เป็น "%d" ครับ เช่นถ้าเราใช้ printf("%d",5+9*7);
ผลลัพธ์
68 (คำนวณจาก 9*7 ก่อน แล้วจึงบวก 5)
เราสามารถใช้ร่วมกับส่วนของข้อความได้ครับ เช่น printf("Result = %d",5+9*7);
ผลลัพธ์
Result = 68
แต่ถ้าเราใส่แบบนี้ printf("5+9*7");
ผลลัพธ์ที่แสดงออกมาจะไม่ใช่ 68 นะครับ แต่มันจะแสดงข้อความที่เขียนว่า "5+9*7" ออกมาเลย
เพราะฉะนั้น ถ้าอยากให้ผลลัพธ์โผลตรงไหน ให้ใส่ %d ไว้ตรงน้ันครับ
เราทำแบบนี้ก็ได้นะ printf("Number A = %d\nNumber B = %d\nNumber C %d",18+5,9,39+1*5);
ผลลัพธ์
Number A = 23
Number B = 9
Number C = 44
ซึ่งใสตัวอย่างจะเห็นว่ามีหลายนิพจน์ ซึ่งจะแสดงเรียงตามลำดับ
แต่ถ้าเราอยากพิมพ์คำว่า "%d" ให้เราพิมพ์ว่า printf("%%d"); คือมี % ซ้ำสองตัวครับ
ผลลัพธ์
%d
นอกจาก %d แล้วยังมี % อื่นๆอีกนะครับ %d จะแสดงผลเป็นเลขฐานสิบจำนวณเต็ม หากนิพจน์เป็น 20/6 มันจะแสดงผลเป็น 3 (20 หาร 6 ได้ 3.กว่าๆ แต่มันแสดงจำนวณเต็ม จึงตัดเศษทิ้ง ไม่มีการปัดขึ้นนะครับ ปัดลงอย่างเดียว)
ดูจากตาราง(ที่ไม่เป็นตารางเท่าไำหร่)
%d - เลขจำนวณเต็มฐานสิบ (Decimal)
%ld - เหมือน %d แต่ถ้าใน TC จะต่างกันนิดหน่อย เดี๋ยวจะบอกตอนเรียนเรื่องตัวแปร
%f - แสดงเลขทศนิยมได้ (ปกติทศนิยม 6 ตำแหน่ง) (Float)
%lf - เหมือน %f แต่แสดงค่าได้มากกว่า
%c - แสดงตัวอักษรตัวเดียว(Charator)
%s - แสดงข้อความยาวๆ (String)
จริงๆยังมีอีก แต่หลักๆจะใช่เท่านี้ครับ เราจะข้าม %c กับ %s ไปก่อน จะบอกทีหลัง
ถ้าเราต้องการแสดงทศนิยม เราก็ทำแบบนี้ printf("%f",20.0/6.0); (ต้องเติม .0 หรือ .00 ด้วยนะครับ)
ผลลัพธ์
3.333333
ถ้าเราอยากให้มันแสดงทศนิยมแค่ 2 ตัว ให้เราใช้ %.2f (เปอร์เซนต์จุดสองเอฟ) หรือถ้าอยากแสดงทศนิยม 3 หลัก ก็ใช้ %.3f ครับ ลองดูๆ
จริงๆยังมีอีกนิดหน่อย แต่จะยังไม่พูดถึงละกันนะครับ ยังไม่ค่อยจำเป็นต้องใช้
หวังว่าจะเป็นความรู้ให้ทุกๆคนนะครับ ใครอ่านแล้วงงไม่ว่าบทไหน ทิ้งคอมเมนต์ไว้ก็ได้ครับ

ผม ขอ ถ้าอะไรหน่อย เกี่ยวกับ ภาษาซีนี่แหละ
คือ อ.เค้าสั่งโปรแกรมให้
ว่า จงรับค่าชื่อวันเป็นภาษาอังกฤษ monday-sunday
แล้ว แสดงสีตามชื่อวัน...
อะ ผม ลองหลายวิธีแล้ว คับ
แต่ยังไม่รู้เรื่องเลย
ยังไงก็วาน พี่ช่วยดูให้หน่อยคัรบ
แมลติดต่อ suppanutcom@hotmail.com
#1 By suppanutcom (117.47.71.22) on 2009-07-13 08:52