C บรรทัดคำสั่ง
เมื่อรันโปรแกรมบรรทัดคำสั่งสามารถส่งผ่านค่าในการเขียนโปรแกรมซีค่าเหล่านี้จะเรียกว่าอาร์กิวเมนต์บรรทัดคำสั่งพวกเขามีความสำคัญในการเขียนโปรแกรมโดยเฉพาะอย่างยิ่งถ้าคุณต้องการที่จะควบคุมจากโปรแกรมภายนอกไม่ได้อยู่ในรหัสเมื่อค่าเหล่านี้ยากรหัสเป็นสิ่งสำคัญโดยเฉพาะอย่างยิ่ง
บรรทัดคำสั่งคือการใช้หลัก ()ฟังก์ชั่นการประมวลผลพารามิเตอร์ขัดแย้ง argc หมายถึงจำนวนของพารามิเตอร์ผ่าน,argv [] คืออาร์เรย์ของตัวชี้ให้แต่ละพารามิเตอร์ที่ส่งผ่านไปยังจุดโปรแกรม นี่คือตัวอย่างง่ายๆในการตรวจสอบว่ามีบรรทัดคำสั่งอาร์กิวเมนต์ให้บริการและดำเนินการดำเนินการที่เหมาะสมตามพารามิเตอร์:
#include <stdio.h> int main( int argc, char *argv[] ) { if( argc == 2 ) { printf("The argument supplied is %s\n", argv[1]); } else if( argc > 2 ) { printf("Too many arguments supplied.\n"); } else { printf("One argument expected.\n"); } }
ใช้พารามิเตอร์รวบรวมและรันโค้ดข้างต้นก็จะให้ผลลัพธ์ที่ต่อไปนี้:
$./a.out testing The argument supplied is testing
สองข้อโต้แย้งรวบรวมและรันโค้ดข้างต้นก็จะให้ผลลัพธ์ที่ต่อไปนี้:
$./a.out testing1 testing2 Too many arguments supplied.
ไม่ผ่านพารามิเตอร์ใด ๆ รวบรวมและรันโค้ดข้างต้นก็จะให้ผลลัพธ์ที่ต่อไปนี้:
$./a.out One argument expected
มันควรจะตั้งข้อสังเกต argv [0] การจัดเก็บชื่อของโปรแกรมที่argv [1] เป็นตัวชี้ไปยังตัวชี้อาร์กิวเมนต์บรรทัดคำสั่งแรก * argv [N] เป็นพารามิเตอร์ที่ผ่านมา ถ้าขัดแย้งใด argc จะเป็น 1.มิฉะนั้นถ้าคุณผ่านพารามิเตอร์ argc จะถูกกำหนดเป็น 2
ระหว่างส่วนใหญ่ของบรรทัดคำสั่งคั่นด้วยช่องว่าง แต่ถ้าอาร์กิวเมนต์ของตัวเองที่มีพื้นที่แล้วส่งผ่านพารามิเตอร์เมื่อพารามิเตอร์ควรจะอยู่ในราคาคู่ "" หรือราคาเดียว '' ภายใน ลองเขียนตัวอย่างข้างต้นมีช่องว่างแล้วคุณสามารถดูใส่ไว้ในเครื่องหมายคำพูดคู่หรือเดียว. "" "". ลองเขียนตัวอย่างข้างต้นจะผ่านโปรแกรมที่วางอยู่ภายในพารามิเตอร์บรรทัดคำพูดสองคำสั่ง:
#include <stdio.h> int main( int argc, char *argv[] ) { printf("Program name %s\n", argv[0]); if( argc == 2 ) { printf("The argument supplied is %s\n", argv[1]); } else if( argc > 2 ) { printf("Too many arguments supplied.\n"); } else { printf("One argument expected.\n"); } }
ใช้พารามิเตอร์ง่ายๆที่คั่นด้วยช่องว่างพารามิเตอร์อัญประกาศรวบรวมและรันโค้ดข้างต้นก็จะให้ผลลัพธ์ที่ต่อไปนี้:
$./a.out "testing1 testing2" Progranm name ./a.out The argument supplied is testing1 testing2