Argc dan Argv C++

Argc Dan Argv C



Semasa menulis program C++, kita semua tahu bahawa fungsi 'main()' dianggap sangat penting kerana kita tidak boleh menyusun atur cara jika pelaksanaan fungsi ini tiada. Sama seperti semua fungsi lain dalam C++, fungsi 'main()' juga mampu menerima hujah. Walau bagaimanapun, perbezaan antara menghantar hujah ke fungsi 'utama()' daripada menghantar hujah kepada fungsi lain ialah anda perlu menghantar hujah melalui baris arahan dalam bekas kes. Hal ini demikian kerana fungsi 'main()' itu sendiri ialah fungsi pemacu, itulah sebabnya tiada fungsi lain yang mampu memanggilnya dan menyampaikan hujah kepadanya. Dalam artikel ini, kita akan membincangkan dua parameter fungsi 'main()', iaitu, 'argc' dan 'argv' dalam C++ dalam Ubuntu 20.04.

Apakah Argc dan Argv dalam C++ dalam Ubuntu 20.04?

Parameter 'argc' merujuk kepada kiraan argumen, manakala 'argv' merujuk kepada tatasusunan aksara yang menyimpan semua argumen yang dihantar ke fungsi 'main()' melalui baris arahan pada masa melaksanakan program dalam C++. Di sini, anda perlu tahu bahawa 'argc' sentiasa menunjukkan kiraan hujah sebagai '1' lebih daripada bilangan sebenar hujah yang diluluskan. Hal ini demikian kerana nama fail objek juga dikira sebagai hujah baris arahan. Anda boleh menghantar argumen baris arahan kepunyaan mana-mana jenis data kepada fungsi 'utama()'. Apa yang anda perlu jaga ialah parameter ini disebut dalam prototaip fungsi 'utama()' anda jika anda ingin mengaksesnya di dalamnya. Walau bagaimanapun, fungsi 'main()' boleh berfungsi dengan baik tanpa kedua-dua parameter ini. Ini akan dibincangkan dalam bahagian berikut artikel ini, selepas itu kita akan meneruskan penggunaan kedua-dua parameter ini dalam C++ dalam Ubuntu 20.04.

Fungsi Utama tanpa Argc dan Argv dalam C++:

Pertama sekali, kami ingin memberitahu anda bahawa fungsi 'main()' dalam C++ boleh berfungsi dengan baik walaupun tanpa menggunakan parameter 'argc' dan 'argv'. Ini digambarkan dalam program C++ berikut:









Kami mempunyai fungsi 'main()' mudah dalam program ini tanpa sebarang hujah. Dalam fungsi 'utama()' ini, kami hanya mencetak contoh mesej pada terminal.



Kemudian, kami menyusun program C++ asas ini dengan bantuan arahan yang disebutkan di bawah:





$ g++ CommandLine.cpp –o CommandLine

Selepas itu, kami melaksanakan program ini dengan menjalankan arahan berikut:



$ . / Talian Perintah

Output program C++ mudah ini ditunjukkan dalam imej di bawah:

Menjalankan Program C++ tanpa Melepasi sebarang Argumen Baris Perintah:

Sekarang, kami akan cuba melaksanakan program C++ di mana fungsi 'main()' mampu menerima parameter 'argc' dan 'argv', namun, kami tidak akan menghantar hujah ini kepadanya semasa melaksanakan program ini daripada terminal. Program C++ tersebut ditunjukkan dalam imej berikut:

Dalam program C++ ini, fungsi 'main()' kami mampu menerima parameter 'argc' dan 'argv'. Walau bagaimanapun, oleh kerana kami tidak berniat untuk menghantar nilai ini kepadanya dalam contoh khusus ini, kami sengaja menyamakan 'argc' kepada '0' supaya apabila kami cuba mencetak nilainya, ia tidak akan mengembalikan sebarang nilai sampah. Selepas itu, kami telah mencetak nilai parameter 'argc' pada terminal. Kemudian, kami telah menggunakan gelung 'untuk' untuk mencetak semua hujah baris arahan pada terminal.

Kami telah menyusun kod ini menggunakan arahan yang ditunjukkan di bawah:

$ g++ CommandLine.cpp –o CommandLine

Kemudian, apabila kami ingin menjalankan program ini, kami tidak memberikan sebarang hujah baris arahan kepadanya, seperti yang anda boleh lihat daripada arahan berikut:

$ . / Talian Perintah

Daripada output program C++ ini yang ditunjukkan dalam imej di bawah, anda dapat melihat bahawa tiada argumen baris perintah dihantar ke fungsi ini kerana kiraan argumen adalah '0' dan tiada argumen dicetak pada terminal kerana tatasusunan aksara ' argv” juga kosong.

Menjalankan Program C++ dengan Argumen Baris Perintah Jenis Integer:

Sekarang, kami ingin menjalankan program C++ yang sama dengan menghantar argumen baris perintah jenis integer kepadanya. Walau bagaimanapun, sebelum melakukan itu, kami akan mengubah sedikit kod kami seperti yang ditunjukkan dalam imej berikut:

Satu-satunya pengubahsuaian yang kami buat pada kod ini ialah kami telah mengalih keluar baris 'argc=0' daripadanya kerana dalam contoh ini, kami ingin mencetak bilangan sebenar argumen baris arahan yang dihantar kepada program ini pada masa jalankan. Kod selebihnya adalah sama seperti yang digunakan dalam bahagian di atas.

Kami menyusun semula kod kami yang diubah suai menggunakan arahan yang ditunjukkan di bawah:

$ g++ CommandLine.cpp –o CommandLine

Kemudian, untuk melaksanakan kod ini, kami menggunakan argumen baris arahan berikut:

$ . / Talian Perintah 1 dua 3

Ini bermakna kita telah meluluskan tiga argumen baris perintah jenis integer kepada program C++ ini semasa menjalankannya, iaitu, 1, 2 dan 3.

Output program yang diubah suai ini ditunjukkan dalam imej di bawah:

Jumlah bilangan argumen yang dikembalikan oleh program C++ ini ialah '4' iaitu, tiga argumen integer yang telah kami luluskan + nama fail objek. Atur cara ini juga mencetak elemen tatasusunan aksara 'argv' pada terminal, iaitu, hujah jenis integer sebenar yang dihantar kepada atur cara ini pada masa pelaksanaan, bersama-sama dengan nama atur cara.

Menjalankan Program C++ dengan Argumen Baris Perintah Jenis Aksara:

Sekarang, kami ingin melihat sama ada program C++ yang sama berfungsi dengan baik apabila kami cuba melaksanakannya dengan menghantar hujah baris arahan jenis aksara kepadanya. Untuk itu, kami tidak perlu mengubahnya lagi. Kami hanya perlu melaksanakannya dengan hujah baris arahan jenis aksara seperti berikut:

$ . / Barisan Perintah a b c d e f

Ini bermakna bahawa kami telah menghantar argumen baris perintah jenis enam aksara kepada program C++ ini semasa menjalankannya, iaitu, a, b, c, d, e, dan f.

Output yang dihasilkan sebagai hasil daripada menghantar argumen baris arahan jenis aksara kepada program C++ yang sama ditunjukkan di bawah:

Jumlah bilangan argumen yang dikembalikan oleh program C++ ini ialah '7' iaitu, argumen enam aksara yang telah kami luluskan + nama fail objek. Atur cara ini juga mencetak elemen tatasusunan aksara 'argv' pada terminal, iaitu, argumen jenis aksara sebenar yang dihantar kepada program ini pada masa pelaksanaan, bersama-sama dengan nama program.

Kesimpulan:

Artikel ini bertujuan untuk perbincangan dua argumen baris perintah, juga dikenali sebagai parameter fungsi 'utama()', iaitu, 'argc' dan 'argv'. Kami bercakap tentang kepentingan kedua-dua parameter ini dengan menyatakan penggunaannya. Kemudian, kami berkongsi beberapa contoh dengan anda yang menggambarkan penggunaan 'argc' dan 'argv' dalam C++ dalam Ubuntu 20.04. Selain itu, kami juga menjelaskan bahawa walaupun tanpa menggunakan parameter ini, fungsi 'utama()' boleh berfungsi dengan baik. Oleh itu, sebaik sahaja anda membaca artikel ini, anda akan memahami penggunaan 'argc' dan 'argv' dengan jelas dalam C++.