簡體   English   中英

將參數傳遞給C程序

[英]Passing arguments to a C program

我正在編寫一個使用6個變量a,b,c,d,e,f的C程序

a,b,c是常量值,我應該將其作為命令行參數傳遞。

d,e,f將是結構數組的大小。

typedef struct
{
   blah blah
} ex;

ex ex0[d];

我對如何將所有這些作為論點感到困惑。 現在,我已經硬編碼了這些值,顯然我不應該這樣做。

這應該使您開始:

int main(int argc, char* argv[]) {
    // argc - number of command line arguments
    // argv - the comand line arguments as an array

    return 0;
}

您傳遞給程序的所有參數都存儲在main函數的第二個參數中

int main(int argc, char* argv[]) // or int main(argc, char** argv)

因此您可以通過argc [3]輕松訪問第4個參數。 但是它不是int,而是字符串,因此您需要對其進行解析。 有標准庫可用於從argc中獲取實際參數,並根據需要的類型對其進行解析。 但是在臨時程序中沒有必要使用它們,因此您的代碼可能如下所示:

typedef struct
 {
  blah blah
 } ex;
int main(int argc, char* argv[])
{
 ex ex0[(int)argv[3]]; // i am not sure if it works on pure C, so you can try int atoi(char *nptr) from stdlib.h
}

使用命令行參數

int main(int argc, char* argv[]) // or int main(int argc, char **argv)
{
   // argc is the argument count
   //argv : The array of character pointers is the listing of all the arguments.
   //argv[0] is the name of the program.   
   //argv[argc] is a null pointer
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM