อักขระพิเศษ (\t) ในภาษา C++

Xakkhra Phises T Ni Phas A C



ในภาษา C++ ลำดับ Escape จะจัดเตรียมวิธีการรวมอักขระพิเศษภายในสตริงที่ไม่สามารถพิมพ์ได้โดยตรง เนื่องจากความขัดแย้งทางไวยากรณ์บางอย่าง ตัวอย่างเช่น ลองพิจารณาว่าคุณสามารถแสดงแท็บแนวนอนภายในสตริงได้อย่างไร นี่คือจุดที่ลำดับการหลีกเลี่ยง “\t” เข้ามามีบทบาท โดยแทรกแท็บแนวนอนลงในการป้อนข้อความ ลำดับการหลีกเลี่ยง “\t” จะเพิ่มแท็บแนวนอนให้กับสตริง ซึ่งเป็นวิธีที่สะดวกในการแทรกระยะห่างที่สอดคล้องกัน มีประโยชน์อย่างยิ่งสำหรับการจัดรูปแบบเอาต์พุตในแอปพลิเคชันคอนโซลหรือในการจัดแนวข้อความ ในคู่มือนี้ เราจะสำรวจฟังก์ชันการทำงานของลำดับหลีก “\t” ในภาษา C++ พร้อมตัวอย่างที่เรียบง่าย เข้าใจง่าย และมีประโยชน์เพื่อทำให้การใช้งานมีความชัดเจนและเข้าใจได้

ทำความเข้าใจลำดับการหลีกหนี

ลำดับ Escape ใน C++ อนุญาตให้อักขระที่ทำหน้าที่ควบคุมภายในสตริงเป็นส่วนหนึ่งของข้อความโดยไม่เข้าใจผิดว่าเป็นโค้ด ข้อผิดพลาดทั่วไปประการหนึ่งสำหรับผู้เริ่มต้นคือความสับสนในการรวมเครื่องหมายคำพูดไว้ในสตริงตามตัวอักษร ตัวอย่างเช่น บรรทัดของโค้ดต่อไปนี้จะส่งผลให้เกิดข้อผิดพลาดในการคอมไพล์เนื่องจากเครื่องหมายคำพูดรอบ ๆ “\t Escape Sequence” ยุติสตริงก่อนกำหนด:

สตริง txt - “บทความนี้เป็นเรื่องเกี่ยวกับการสำรวจ” \t ลำดับหลีก” ด้วยความช่วยเหลือของตัวอย่าง' -

เพื่อแก้ไขปัญหานี้ในโปรแกรม C++ เราจะใช้แบ็กสแลช “\” เป็นอักขระหลีกเพื่อส่งสัญญาณให้คอมไพเลอร์ทราบว่าอักขระต่อไปนี้มีการตีความแบบพิเศษ นี่คือวิธีการ:







สตริง txt - 'บทความนี้เกี่ยวกับการสำรวจ\ “ - ไม่ต้องหลีกลำดับ\” ด้วยความช่วยเหลือของตัวอย่าง' -

เจาะลึกอักขระพิเศษ (\t) ใน C++

ลำดับ “\t” เป็นมากกว่าเครื่องมือเว้นวรรค แสดงถึงอักขระแท็บที่ทำให้เคอร์เซอร์เลื่อนไปที่แท็บหยุดถัดไป สิ่งนี้มีประโยชน์อย่างยิ่งสำหรับการสร้างการแสดงข้อความที่มีรูปแบบเรียบร้อยในแอปพลิเคชันเทอร์มินัล นอกเหนือจาก “\t” แล้ว C++ ยังรองรับ Escape Sequence ที่หลากหลายเพื่อวัตถุประสงค์ที่แตกต่างกัน เช่น “\n” จะสร้างบรรทัดใหม่ อย่างไรก็ตาม ในบทความนี้ เราจะเน้นเฉพาะลำดับหลีก “\t” ใน C++ โดยการจัดเตรียมตัวอย่างเพื่อแสดงวัตถุประสงค์และการใช้งาน สิ่งนี้จะทำให้คุณมีความรู้ในการใช้แท็บแนวนอนในงานการเขียนโปรแกรมของคุณอย่างมีประสิทธิภาพ ให้เรามาดูตัวอย่างเพื่อทำความเข้าใจการทำงานของลำดับหลีก “\t” ในโปรแกรม C++



ตัวอย่างที่ 1:

ตัวอย่างโค้ด C++ ต่อไปนี้มีโปรแกรมอย่างง่ายที่ใช้ในการพิมพ์ข้อความไปยังคอนโซล อ้างถึงรหัสต่อไปนี้แล้วเราจะอธิบายในภายหลัง:



#รวม

ใช้เนมสเปซมาตรฐาน -

ภายใน หลัก - - -

ศาล - 'นี่คือข้อความบรรทัดแรก' - สิ้นสุด -

ศาล - “นี่คือข้อความบรรทัดที่สอง \t - -

ศาล - “บรรทัดนี้ตามด้วยก - ลำดับการหลบหนีไม่ได้” -

กลับ 0 -

-

นี่คือรายละเอียดของแต่ละส่วนของโค้ด:





#รวม บรรทัดนี้จะเพิ่มไลบรารี iostream ให้กับโปรแกรมที่จำเป็นสำหรับฟังก์ชันอินพุตและเอาต์พุต ไฟล์ส่วนหัว มีคำจำกัดความสำหรับวัตถุเช่น cin, cout ฯลฯ

ใช้เนมสเปซมาตรฐาน; - รหัสนี้ช่วยให้คุณใช้ชื่อที่รวมอยู่ในไลบรารีมาตรฐานโดยไม่ต้องขึ้นต้นด้วย 'std::' ตัวอย่างเช่น คุณสามารถเขียน “cout” แทน “std::cout”



int หลัก() { – นี่คือการประกาศและจุดเริ่มต้นของฟังก์ชันหลักสำหรับทุกโปรแกรม C++ โดยทั่วไป “int” ก่อน “main” บ่งชี้ว่าฟังก์ชันส่งกลับค่าจำนวนเต็ม

ศาล << “นี่คือบรรทัดแรกของข้อความ”< บรรทัดนี้จะพิมพ์สตริง 'นี่คือบรรทัดแรกของข้อความ' ไปยังคอนโซล “<<” เป็นตัวดำเนินการแทรก หากต้องการขึ้นบรรทัดใหม่ ให้ใช้อักขระ 'endl'

cout << “นี่คือข้อความบรรทัดที่สอง\t”; - ที่นี่ โปรแกรมจะส่งออกสตริงอีกอันหนึ่งซึ่งก็คือ “นี่คือบรรทัดที่สองของข้อความ\t” สังเกตเครื่องหมาย “\t” ต่อท้าย เมื่อพิมพ์ลงบนคอนโซล จะเพิ่มช่องว่างแท็บแนวนอนหลังข้อความ

cout << “บรรทัดนี้ตามด้วยลำดับการหลีกเลี่ยง \\t”; - ในบรรทัดนี้ โปรแกรมจะพิมพ์ “บรรทัดนี้ตามด้วย \t ลำดับหลีก” ลำดับหลีก “\\t” ใช้เพื่อรวม “\t” ในเอาต์พุตอย่างแท้จริง เนื่องจากแบ็กสแลช “\” ตัวเองถูกหลีกโดยแบ็กสแลชอื่น ดังนั้น “\t” จะถูกพิมพ์แทนแท็บแนวนอน

กลับ 0; - นี่เป็นจุดสิ้นสุดของฟังก์ชันหลักและส่งกลับค่าศูนย์ซึ่งหมายถึงการดำเนินการโปรแกรมสำเร็จ เมื่อโปรแกรมนี้ทำงาน ผลลัพธ์จะเป็นดังนี้:

ตัวอย่างที่ 2:

ตอนนี้ให้เราดูอีกตัวอย่างหนึ่งและดูความมหัศจรรย์ของอักขระหลีก “\t” ตัวอย่างคือโปรแกรม C++ อย่างง่ายที่มีไลบรารีสตรีมอินพุต-เอาท์พุตมาตรฐาน และใช้เนมสเปซมาตรฐาน โปรแกรมนี้ออกแบบมาเพื่อพิมพ์ตารางชื่อที่จัดรูปแบบและเมืองและประเทศที่เกี่ยวข้องไปยังคอนโซล

#รวม

ใช้เนมสเปซมาตรฐาน -

ภายใน หลัก - - -

ศาล - 'ชื่อ \t - \t เมือง \t - \t ประเทศ' - สิ้นสุด -

ศาล - - - สิ้นสุด -

ศาล - “อลิซ \t - \t ปักกิ่ง \t - \t จีน' - สิ้นสุด -

ศาล - “บ๊อบ \t - \t ออสติน \t - \t อเมริกา' - สิ้นสุด -

ศาล - “แคท. \t - \t ปารีส \t - \t ฝรั่งเศส' - สิ้นสุด -

ศาล - “เดวิด \t - \t เดอร์บัน \t - \t แอฟริกาใต้' - สิ้นสุด -

ศาล - - - สิ้นสุด -

กลับ 0 -

-

นี่คือรายละเอียดของรหัส:

อีกครั้ง, #รวม รวมไลบรารี iostream เพื่อดำเนินการอินพุต/เอาต์พุตใน C ++

ใช้เนมสเปซมาตรฐาน; – อนุญาตให้ใช้เอนทิตีจากเนมสเปซ “std” โดยไม่ต้องเติมคำนำหน้าด้วย “std::”

ที่ int หลัก() { เป็นจุดเริ่มต้นของทุกโปรแกรม C++ เมื่อคุณรันโปรแกรม การดำเนินการจะเริ่มต้นจากที่นี่

ภายในฟังก์ชั่นหลัก เรามีดังต่อไปนี้:

ศาล << “ชื่อ\t|\tเมือง\t|\tประเทศ”< บรรทัดนี้จะพิมพ์ส่วนหัวของตารางด้วยอักขระแท็บ “\t” เพื่อการจัดตำแหน่ง Cout ใช้สำหรับเอาต์พุตคอนโซล “\t” แทรกแท็บแนวนอนระหว่างข้อความ และใช้ “endl” เพื่อแทรกบรรทัดใหม่ที่ส่วนท้าย

ศาล << “——————————————-“< บรรทัดนี้จะพิมพ์ตัวคั่นด้วยภาพ ซึ่งเป็นเส้นประ เพื่อระบุส่วนท้ายของส่วนหัวและแยกส่วนหัวออกจากข้อมูล

บรรทัดคำสั่งสี่บรรทัดถัดไปแต่ละบรรทัดจะพิมพ์หนึ่งแถวของตาราง เส้นเหล่านี้มีรูปแบบเดียวกันกับแท็บและเป็นส่วนหนึ่งของการสร้างเอาต์พุตตาราง หลังจากข้อมูลแต่ละบรรทัด จะมีการใช้ 'endl' เพื่อเลื่อนไปยังบรรทัดถัดไป บรรทัดสุดท้ายจะพิมพ์เส้นคั่นอีกครั้งเพื่อระบุจุดสิ้นสุดของข้อมูลในตาราง

กลับ 0;: – บรรทัดนี้แสดงถึงการดำเนินการโปรแกรมที่ประสบความสำเร็จ ค่าที่ส่งคืนเป็น 0 หมายถึงความสำเร็จ

เมื่อโปรแกรมนี้ถูกคอมไพล์และรัน ผลลัพธ์จะปรากฏเป็นตารางบนคอนโซลพร้อมชื่อบุคคล เมือง และประเทศซึ่งจัดเรียงไว้อย่างเป็นระเบียบในคอลัมน์ที่คั่นด้วยแถบแนวตั้ง (|) และแท็บ ดูผลลัพธ์ต่อไปนี้:

บันทึก: โปรดจำไว้ว่าการจัดแนวข้อความในคอนโซลที่แท้จริงจะขึ้นอยู่กับความกว้างของการตั้งค่าแท็บในคอนโซลหรือเทอร์มินัลของคุณ ซึ่งอาจส่งผลให้ตารางปรากฏแตกต่างกันไปในระบบต่างๆ

ตัวอย่างที่ 3:

โปรแกรม C++ ที่เรียบง่ายแต่น่าสนใจนี้ใช้ลำดับหลีกของแท็บ “\t” เพื่อพิมพ์รูปทรงเพชรบนหน้าจอ รหัสนี้จะปรับขนาดเพชรตามตัวแปร “เพชร” ซึ่งระบุขนาดและแสดงจำนวนเส้นจากศูนย์กลางของเพชรไปจนถึงด้านบนหรือด้านล่าง ตรวจสอบรหัสที่กำหนดต่อไปนี้:

#รวม
ใช้เนมสเปซมาตรฐาน -
ภายใน หลัก - - -
ภายใน เพชร - 3 -
สำหรับ - ภายใน ฉัน - 1 - ฉัน - เพชร - - ฉัน - -
สำหรับ - ภายใน เจ - 0 - เจ - เพชร - ฉัน - - เจ - -
ศาล - - \t - -
-
สำหรับ - ภายใน เจ - 0 - เจ - 2 - ฉัน - 1 - - เจ - -
ศาล - - \t - - -
ศาล - สิ้นสุด -
-
สำหรับ - ภายใน ฉัน - เพชร - 1 - ฉัน - 1 - - ฉัน - -
สำหรับ - ภายใน เจ - 0 - เจ - เพชร - ฉัน - - เจ - -
ศาล - - \t - -
-
สำหรับ - ภายใน เจ - 0 - เจ - 2 - ฉัน - 1 - - เจ - -
ศาล - - \t - - -
ศาล - สิ้นสุด -
-
กลับ 0 -
-

อย่างที่คุณเห็น โปรแกรมนี้ประกอบด้วยสองส่วน ส่วนแรกพิมพ์ครึ่งบนของเพชร และอีกส่วนหนึ่งพิมพ์ครึ่งล่าง ครึ่งบนของเพชรจะถูกพิมพ์โดยแสดงจำนวนแท็บที่ลดลงเพื่อสร้างการเยื้อง ตามด้วยเครื่องหมายดอกจัน “*” ที่เพิ่มขึ้น โดยคั่นด้วยแท็บ สิ่งนี้ได้รับการจัดการภายในลูป 'for' แรก

ครึ่งล่างจะพิมพ์ออกมาในลักษณะเดียวกัน แต่ให้วนวนซ้ำเพื่อลดจำนวนเครื่องหมายดอกจัน และเพิ่มการเยื้องอีกครั้ง ทำให้เกิดครึ่งล่างของเพชร สิ่งนี้ได้รับการจัดการในลูป 'for' ที่สอง

เมื่อรันโปรแกรมด้วย 'diamond= 3' ผลลัพธ์จะดูเหมือนเพชรซึ่งอยู่ตรงกลางหน้าจอเนื่องจากอักขระแท็บ ดูผลลัพธ์ของโปรแกรมนี้โดยเฉพาะ:

  กลุ่มดาวขนาดเล็กสีดำและสีน้ำเงินคำอธิบายที่สร้างขึ้นโดยอัตโนมัติ

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

บทสรุป

Escape Sequences ใน C++ เป็นเครื่องมือที่มีประสิทธิภาพสำหรับการแสดงอักขระที่ไม่สามารถแสดงในหน้าต่างเอาต์พุตมาตรฐานได้ ในบรรดาลำดับเหล่านี้ แท็บแนวนอนซึ่งแสดงด้วย “\t” มีประโยชน์อย่างยิ่งสำหรับการเพิ่มช่องว่างแนวนอนที่ควบคุมในข้อความ เมื่อใช้ “\t” โปรแกรมเมอร์สามารถจัดแนวข้อความเอาต์พุต เพิ่มความสามารถในการอ่าน และจัดโครงสร้างข้อมูลอย่างเป็นระบบ อักขระนี้เลียนแบบการกดปุ่ม 'tab' บนแป้นพิมพ์เพื่อเลื่อนเคอร์เซอร์ไปยังตำแหน่งแท็บถัดไป ในบทความนี้ เราได้สำรวจฟังก์ชันการทำงานของลำดับหลีก “\t” ภายในภาษา C++ โดยเน้นการใช้งานด้วยตัวอย่างที่ตรงไปตรงมาและใช้งานได้จริงเพื่อแสดงพฤติกรรมของมัน