C parameter baris arahan


Apabila melaksanakan program, anda boleh menghantar nilai dari baris arahan ke program C. Nilai ini dipanggil Parameter Baris Perintah dan ia penting untuk atur cara, terutamanya jika anda ingin mengawal atur cara dari luar dan bukannya mengekodkan nilai ini dalam kod.

Parameter baris arahan diproses menggunakan parameter fungsi main(), dengan argc merujuk kepada bilangan parameter yang dihantar masuk dan argv[] ialah penunjuk Array penunjuk kepada setiap hujah yang dihantar kepada program. Berikut ialah contoh mudah yang menyemak sama ada parameter disediakan pada baris arahan dan melakukan tindakan yang sepadan berdasarkan parameter:

#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");   }}

Menggunakan parameter, menyusun dan melaksanakan kod di atas, ia akan menghasilkan keputusan berikut:

$./a.out testingThe argument supplied is testing

Gunakan dua parameter, susun dan laksanakan kod di atas, ia akan menghasilkan keputusan berikut:

$./a.out testing1 testing2Too many arguments supplied.

Lepaskan tiada parameter, susun dan laksanakan kod di atas, ia akan menghasilkan keputusan berikut:

$./a.outOne argument expected

Perlu diambil perhatian bahawa argv[0] menyimpan nama atur cara, argv[1] ialah penunjuk kepada hujah baris arahan pertama, * argv[n ] ialah parameter terakhir. Jika tiada hujah disediakan, argc akan menjadi 1, sebaliknya jika satu hujah diluluskan, argc akan ditetapkan kepada 2.

Berbilang parameter baris arahan dipisahkan oleh ruang, tetapi jika parameter itu sendiri mengandungi ruang, parameter tersebut hendaklah diletakkan di dalam petikan berganda "" atau petikan tunggal '' apabila menghantar parameter. Mari kita tulis semula contoh di atas untuk mempunyai ruang, kemudian anda boleh lulus pandangan seperti ini dan meletakkannya dalam petikan berganda atau petikan tunggal """". Mari kita tulis semula contoh di atas untuk menghantar hujah baris arahan kepada atur cara yang diletakkan di dalam petikan berganda:

#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");   }}

Menggunakan hujah pembatas ruang ringkas yang disertakan dalam petikan berganda, susun dan laksanakan kod di atas, yang menghasilkan keputusan berikut :

$./a.out "testing1 testing2"Progranm name ./a.outThe argument supplied is testing1 testing2