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 ครับ ลองดูๆ

จริงๆยังมีอีกนิดหน่อย แต่จะยังไม่พูดถึงละกันนะครับ ยังไม่ค่อยจำเป็นต้องใช้

หวังว่าจะเป็นความรู้ให้ทุกๆคนนะครับ ใครอ่านแล้วงงไม่ว่าบทไหน ทิ้งคอมเมนต์ไว้ก็ได้ครับ

Comment



smilebig smileopen-mounthed smileconfused smilesad smileangry smiletonguequestionembarrassedsurprised smilewinkdouble winkcry

Tweet

พี่ ๆ คับ


ผม ขอ ถ้าอะไรหน่อย เกี่ยวกับ ภาษาซีนี่แหละ

คือ อ.เค้าสั่งโปรแกรมให้

ว่า จงรับค่าชื่อวันเป็นภาษาอังกฤษ monday-sunday

แล้ว แสดงสีตามชื่อวัน...

อะ ผม ลองหลายวิธีแล้ว คับ

แต่ยังไม่รู้เรื่องเลย

ยังไงก็วาน พี่ช่วยดูให้หน่อยคัรบ

แมลติดต่อ suppanutcom@hotmail.com

#1 By suppanutcom (117.47.71.22) on 2009-07-13 08:52

พี่ ค่ะ พอดีว่าอาจายร์ส่งงานมาค่ะ ว่าให้รับค่า อาเรย์เป็นตัวเลข สามค่าแล้วให้แสดงค่า โดยกลับค่าจากข้างหลังมาข้างหน้าน่ะค่ะ จะทำไงดี

ช่วยด้วยนะค่ะ

#2 By yumin (203.158.160.11) on 2009-11-11 15:10

คือว่า อ.เค้าสั่ง ให้ ทำโปรเจ็กงานมา 1 ชิ้น แล้วหนูเลือกทำโปรแกรมที่ใช้ไว้คำนวณ ทุกอย่างเลย เช่น การแปลงเงิน การเปลี่ยนอุณหภูมิ รายเงี้ย เพ่ หนูไม่รุว่าจะทำไงต่อเนี้ยเพระว่าขี้เกียจคิด ทำให้หน่อยได้ไหม เพระว่า โค้ด เเม้ง โคตรเยอะเลยอะ เพ่

#3 By เป็ดเริ่ด (117.47.2.166) on 2009-11-16 19:28