Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

จะแยกวิเคราะห์อาร์กิวเมนต์บรรทัดคำสั่งใน C ++ ได้อย่างไร


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

อาร์กิวเมนต์บรรทัดคำสั่งได้รับการจัดการโดยใช้อาร์กิวเมนต์ของฟังก์ชัน main() โดยที่ argc หมายถึงจำนวนอาร์กิวเมนต์ที่ส่งผ่าน และ argv[] เป็นอาร์เรย์ตัวชี้ซึ่งชี้ไปยังแต่ละอาร์กิวเมนต์ที่ส่งไปยังโปรแกรม ต่อไปนี้เป็นตัวอย่างง่ายๆ ซึ่งจะตรวจสอบว่ามีข้อโต้แย้งใด ๆ ที่มาจากบรรทัดคำสั่งและดำเนินการตามนั้นหรือไม่ -

โค้ดตัวอย่าง

#include <iostream>
using namespace std;
int main( int argc, char *argv[] ) {
   if( argc == 2 ) {
      cout << "The argument supplied is "<< argv[1] << endl;
   } else if( argc > 2 ) {
      cout << "Too many arguments supplied." <<endl;
   } else {
      cout << "One argument expected." << endl;
   }
}

ผลลัพธ์

$./a.out testing
The argument supplied is testing

ผลลัพธ์

$./a.out testing1 testing2
Too many arguments supplied.

ผลลัพธ์

$./a.out
One argument expected