การอ่านอาร์กิวเมนต์จากคำสั่งลำดับ

C++:
การอ่านอาร์กิวเมนต์จากคำสั่งลำดับ

วิธีทำ:

ใน C++, อาร์กิวเมนต์บรรทัดคำสั่งได้รับใน main() เป็นอาร์เรย์ของตัวชี้อักขระ นี่คือวิธีที่คุณจับพวกมัน:

#include <iostream>
int main(int argc, char* argv[]) {
    std::cout << "คุณได้ป้อน " << argc << " อาร์กิวเมนต์:\n";
    for (int i = 0; i < argc; ++i) {
        std::cout << argv[i] << "\n";
    }
    return 0;
}

ตัวอย่างผลลัพธ์: (สมมติว่าทำการเรียกใช้เป็น ./myProgram foo bar)

คุณได้ป้อน 3 อาร์กิวเมนต์:
./myProgram
foo
bar

ลงลึก

ย้อนกลับไปเมื่อก่อน, บรรทัดคำสั่งคือวิธีเดียวในการโต้ตอบกับโปรแกรม หน้าต่างกราฟิกในปัจจุบันนั้นยิ่งใหญ่, แต่บรรทัดคำสั่งยังคงมีอยู่, เฉพาะในสภาพแวดล้อมเซิร์ฟเวอร์หรือการพัฒนา มันเสนอการควบคุมที่รวดเร็วและสามารถเขียนสคริปต์ได้

ทางเลือกสำหรับ argv และ argc ที่มาในตัว รวมถึงไลบรารี่เช่น Boost.Program_options สำหรับการแยกวิเคราะห์ที่ซับซ้อนยิ่งขึ้น ยังมีฟังก์ชัน getopt() ในระบบที่คล้าย Unix สำหรับแฟนๆ บรรทัดคำสั่งแบบดั้งเดิม

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

ดูเพิ่มเติม