我正在寫一個簡單的程序,它採用參數形式的用戶和處理它們。 我有argv中的參數,它是二維數組。但是當我運行程序時,我得到了垃圾值和分段錯誤錯誤。我曾嘗試使用argc作爲終止條件,它的工作原理。但我想用指針來做。 這裏指針有什麼問題。開關案例解析選項
#include<stdio.h>
int main(int argc, char *argv[])
{
while (++(*argv))
{
if (**argv == '-')
{
switch (*argv[1])
{
default:
printf("Unknown option -%c\n\n", (*argv)[1]);
break;
case 'h':
printf("\n option h is found");
break;
case 'v':
printf("option V is found");
break;
case 'd':
printf("\n option d is found");
break;
}
}
printf("\n outside while : %s", *argv);
}
}
程序運行爲:
./a.out -h -v -d
謝謝
另外,你爲什麼不使用'getopt的()'用於解析命令行? – 2013-07-07 05:29:32
@ H2CO3:也許這是一個練習 - 一種說明選項解析如何變得困難的方法。然後在下一課中,大顯身手:getopt可以爲您做到!這聽起來像是我想做的一件事,那就是傾聽學生對發現getopt之後似乎浪費時間的抱怨抱怨。 –
甚至使後更正所選擇的回答表明,嘗試使用此命令行運行程序「./a.out - 」你應該在你的switch語句... – Curt