C++ Academy · บทเรียน

การจัดรูปแบบผลลัพธ์ด้วย iomanip

ควบคุมความกว้าง ความแม่นยำ การจัดแนว และฐานตัวเลขด้วยส่วนหัว iomanip

บทเรียน 2 จาก 413 ขั้นตอน

การจัดรูปแบบผลลัพธ์ด้วย iomanip เป็นบทเรียน C++ Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน C++ Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส C++ Academy มีบทเรียนทั้งหมด 4 บทเรียน

ส่วนหัว iomanip

ส่วนหัว <iomanip> มี ตัวจัดรูปแบบ ซึ่งเป็นออบเจ็กต์พิเศษที่ส่งผ่านสตรีมเข้า cout เพื่อเปลี่ยนสถานะการจัดรูปแบบ

std::setw: ความกว้างฟิลด์

std::setw(n) กำหนดความกว้างขั้นต่ำสำหรับฟิลด์ ถัดไป เท่านั้น โดยค่าที่สั้นกว่าจะถูกเติมให้เต็มความกว้าง

#include <iomanip>
std::cout << std::setw(10) << "Name" << std::setw(5) << "Age\n";
std::cout << std::setw(10) << "Ada"  << std::setw(5) << 36 << "\n";

std::setfill: อักขระเติม

โดยค่าเริ่มต้น setw จะเติมด้วยช่องว่าง เปลี่ยนอักขระเติมด้วย setfill โดยการตั้งค่านี้จะคงอยู่จนกว่าจะเปลี่ยน

std::cout << std::setfill('0') << std::setw(4) << 42;
// 0042

std::left และ std::right

จัดแนวข้อความภายในฟิลด์ setw โดยค่าเริ่มต้นจะจัดชิดขวา

std::cout << std::left << std::setw(10) << "Ada" << "|\n";
std::cout << std::right << std::setw(10) << "Ada" << "|\n";

std::setprecision

ควบคุมจำนวนเลขนัยสำคัญ หรือจำนวนตำแหน่งทศนิยมเมื่อใช้ร่วมกับ std::fixed

double pi = 3.14159265;
std::cout << std::setprecision(4) << pi << "\n";  // 3.142
std::cout << std::fixed << std::setprecision(2) << pi; // 3.14

Fixed Scientific Hexfloat

สลับรูปแบบตัวเลขด้วย std::fixed, std::scientific และ std::hexfloat

double x = 12345.6789;
std::cout << std::scientific << x << "\n"; // 1.234568e+04
std::cout << std::fixed << x << "\n";      // 12345.678900

ฐานของจำนวนเต็ม: hex oct dec

พิมพ์จำนวนเต็มในฐานที่แตกต่างกัน std::showbase จะเพิ่มคำนำหน้า (0x, 0)

int n = 255;
std::cout << std::hex << n << "\n";  // ff
std::cout << std::oct << n << "\n";  // 377
std::cout << std::dec << n << "\n";  // 255 (default)

std::boolalpha

พิมพ์ค่าบูลีนเป็นคำแทนที่จะเป็น 1/0

std::cout << std::boolalpha << true << "\n";  // true
std::cout << std::noboolalpha << true << "\n"; // 1

ตัวจัดรูปแบบมีผลต่อเนื่อง

ตัวจัดรูปแบบส่วนใหญ่จะมีผลต่อไปจนกว่าจะเปลี่ยนค่า setw เป็นข้อยกเว้น เพราะมีผลกับฟิลด์ถัดไปเท่านั้น

std::quoted สำหรับสตริงที่ปลอดภัย

std::quoted จาก <iomanip> ครอบสตริงด้วยเครื่องหมายอัญประกาศคู่และหลีกอักขระอัญประกาศที่อยู่ภายใน เหมาะอย่างยิ่งสำหรับบรรทัดบันทึกการทำงาน

std::string name = "Ada \"Countess\"";
std::cout << std::quoted(name);
// "Ada \"Countess\""

C++20 std::format

C++20 สมัยใหม่แทนที่การใช้ iomanip ส่วนใหญ่ด้วย std::format ซึ่งเป็น API รูปแบบเดียวกับ printf ที่ปลอดภัยด้านชนิดข้อมูล

#include <format>
std::cout << std::format("{:>10} | {:.2f}\n", "pi", 3.14159);

ตรวจสอบอย่างรวดเร็ว

ต้องเรียกใช้ตัวจัดรูปแบบใดซ้ำสำหรับฟิลด์ผลลัพธ์แต่ละฟิลด์

ทบทวน

<iomanip> มีตัวจัดรูปแบบสำหรับความกว้าง ความละเอียด การจัดแนว ฐานตัวเลข และการใส่อัญประกาศ setw มีผลต่อแต่ละฟิลด์ ส่วนตัวอื่น ๆ มีผลต่อเนื่อง ใน C++20 ควรเลือกใช้ std::format เพื่อการจัดรูปแบบที่อ่านง่ายขึ้น

เริ่มต้นได้ฟรี

เรียนรู้ C++ ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
51
บทเรียน
203

คำถามที่พบบ่อย

บทเรียน “การจัดรูปแบบผลลัพธ์ด้วย iomanip” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การจัดรูปแบบผลลัพธ์ด้วย iomanip” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส C++ Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส C++ Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การจัดรูปแบบผลลัพธ์ด้วย iomanip”

ควบคุมความกว้าง ความแม่นยำ การจัดแนว และฐานตัวเลขด้วยส่วนหัว iomanip คุณปฏิบัติ C++ Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน C++ Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน C++ Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “การจัดรูปแบบผลลัพธ์ด้วย iomanip” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน C++ Academy นี้ได้ไหม

ได้ บทเรียน C++ Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การใช้ std::cin และ std::cout อย่างถูกต้อง
  2. การจัดรูปแบบผลลัพธ์ด้วย iomanip
  3. การอ่านข้อมูลเข้าอย่างปลอดภัยด้วย getline
  4. การทำงานกับ std::cerr และ std::clog
← กลับไปที่ C++ Academy