Command Line Argument in C/C++
ไม่ได้อัพ Blog มาสักพักเลยนะครับ
ช่วงนี้ช่วงสอบ วันนี้สอบตัวหนักๆ เสร็จ
พักสมองด้วยการเขียนเรื่องที่อยากเขียนมาสักพักหนึ่งแล้ว
เราจะมาว่ากันเรื่อง Command Line Argument in C/C++
ซึ่งเวลาเขียนภาษา C/C++ เรามักจะชินกับ โครงสร้างแบบนี้
ซึ่งการเขียนโครงสร้างแบบนี้ ถ้าทำให้ไม่สามารถรับ Command Line Argument ได้
ตรงตัวครับ Command Line Argument คือ "Argument (สิ่งที่ส่งไปให้ฟังก์ชั่น) จาก Command Line"
ซึ่งการจะทำแบบนี้ อย่างแรกเลยคือ
"เราต้อง Compile โปรแกรมของเราผ่าน Command Line ให้ได้เสียก่อน"
ซึ่งผมเขียน Blog ก่อนหน้านี้ เกี่ยวกับวิธีการทำไว้แล้วครับ
http://macbaszii.blogspot.com/2012/01/command-line-compiling-cc-java-windows.html
(พวก Codeblocks หรือโปรแกรม Code Editor อื่นๆ ก็เห็นว่าทำได้นะครับ แต่ผมทำไม่เป็น :P)
ว่ากันต่อ ต่อไปเวลาเขียนโครงสร้างของโปรแกรม ก็จะเขียนในรูปแบบนี้นะครับ (C/C++ เขียนเหมือนกัน)
โดย (int)argc (Argument Count) คือ จำนวนของ Argument ที่รับเข้ามา
และ (char **)argv (Argument Value) คือ ค่าของ Argument ซึ่งจะเป็น Array ของ string (สายอักขระ)
เราเขียนโปรแกรมเพิ่มเติมนิดหน่อยนะครับ เพื่อให้เราเห็นภาพ
ถ้าคุณมีฝีมือสักนิด :P จะเกิดข้อสงสัยว่า ...
ส่วนวิธีที่จะใส่ Command Line Argument ก็ไม่ยากครับ
เปิด Terminal (Mac) หรือ CMD (Windows) ขึ้นมา
(ต้องตั้งค่าให้สามารถทำ Command Line Compiling ก่อนนะครับ)
จากนั้นลองพิมพ์ตามภาพเลยครับ (ใส่ Argument ไประหว่างรัน)
และแน่นอน ผมไม่ได้ให้ผลลัพธ์หลังจากที่ผมกด Enter จากภาพนี้หรอกนะครับ
มันจะเป็นการเฉลยว่า สิ่งที่ผมให้คุณ (คนอ่าน) ไปลองทำนั้น คุณได้ทำจริงหรือปล่าว ? :P
ขอจบ Blog เพียงเท่านี้แหละครับ
ช่วงนี้ช่วงสอบ วันนี้สอบตัวหนักๆ เสร็จ
พักสมองด้วยการเขียนเรื่องที่อยากเขียนมาสักพักหนึ่งแล้ว
เราจะมาว่ากันเรื่อง Command Line Argument in C/C++
ซึ่งเวลาเขียนภาษา C/C++ เรามักจะชินกับ โครงสร้างแบบนี้
![]() |
C++ Language |
![]() |
C Language |
ตรงตัวครับ Command Line Argument คือ "Argument (สิ่งที่ส่งไปให้ฟังก์ชั่น) จาก Command Line"
ซึ่งการจะทำแบบนี้ อย่างแรกเลยคือ
"เราต้อง Compile โปรแกรมของเราผ่าน Command Line ให้ได้เสียก่อน"
ซึ่งผมเขียน Blog ก่อนหน้านี้ เกี่ยวกับวิธีการทำไว้แล้วครับ
http://macbaszii.blogspot.com/2012/01/command-line-compiling-cc-java-windows.html
(พวก Codeblocks หรือโปรแกรม Code Editor อื่นๆ ก็เห็นว่าทำได้นะครับ แต่ผมทำไม่เป็น :P)
ว่ากันต่อ ต่อไปเวลาเขียนโครงสร้างของโปรแกรม ก็จะเขียนในรูปแบบนี้นะครับ (C/C++ เขียนเหมือนกัน)
โดย (int)argc (Argument Count) คือ จำนวนของ Argument ที่รับเข้ามา
และ (char **)argv (Argument Value) คือ ค่าของ Argument ซึ่งจะเป็น Array ของ string (สายอักขระ)
เราเขียนโปรแกรมเพิ่มเติมนิดหน่อยนะครับ เพื่อให้เราเห็นภาพ
ถ้าคุณมีฝีมือสักนิด :P จะเกิดข้อสงสัยว่า ...
"ทำไม argc จะต้อง -1 ด้วย"
"ทำไม argv เป็น Array แล้วผมให้ for วนค่าเริ่มต้นที่ 1"ลองหาคำตอบกันดูเองนะครับ ^______^
ส่วนวิธีที่จะใส่ Command Line Argument ก็ไม่ยากครับ
เปิด Terminal (Mac) หรือ CMD (Windows) ขึ้นมา
(ต้องตั้งค่าให้สามารถทำ Command Line Compiling ก่อนนะครับ)
จากนั้นลองพิมพ์ตามภาพเลยครับ (ใส่ Argument ไประหว่างรัน)
มันจะเป็นการเฉลยว่า สิ่งที่ผมให้คุณ (คนอ่าน) ไปลองทำนั้น คุณได้ทำจริงหรือปล่าว ? :P
ขอจบ Blog เพียงเท่านี้แหละครับ
Comments
Post a Comment