我想要做的是接受命令行參數並根據參數更改一些變量。我附加了一大段代碼,因爲整個代碼大約是400行。在C中正確解析命令行參數
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[]) {
char somestring[500];
int ca=0;
if (argc==1) //if no arguments are specified use defaults
{
}
else
{
while(ca<argc)
{
ca++
if(strcmp(argv[ca],"-f")==0)
{
printf("This works");
ca++;
if(strcmp(argv[ca],"red")==0){
printf("this will print red\n");
}
else{
printf("invalid color");
}
}
if(strcmp(argv[ca),"")==0)
{
printf("invalid argument");
}
else {
strcat(somestring,argv[ca]);
}
}
printf("%s",somestring);
}
}
如果用戶輸入:
./foobar -f紅色這是一個字符串
程序應該打印:
「這將打印紅這是一個字符串「
如果用戶輸入:
./foobar -f紅色
程序應打印 「無效號碼的命令行參數」。
這樣做最簡單的方法是什麼?我嘗試了很多可能性,但沒有運氣。 不同數量的參數是我的主要問題(我也有超過5個選項,例如..- f -b -h -w -e)
幫助將不勝感激。如果你願意,我可以添加我的整個代碼。
如果你不把文字「這是一個stri ng「之間,程序會將每個單詞解釋爲單個參數 –
查看#include http://www.crasseux.com/books/ctutorial/argp-example。html也http://stackoverflow.com/questions/7677562/whats-the-difference-between-argp-and-getopt –