C命令列參數

來源:互聯網
上載者:User

C語言 命令列參數[轉]

在支援C語言的環境中,可以在程式開始執行時將命令列參數傳遞給程式。

調用主函數main時,有兩個參數,第一個參數表示運行程式時命令列中參數的數目;第二個參數表示指向字串數組的指標,其中每個字串對應一個參數。

main(int argc, char *argv[])

argc和argv是習慣性用法,可以更改。

argv是一個指向指標的指標,

這個數組的每個元素都是一個字元指標,指向的第一個參數就是程式的名稱,最後一個是NULL。

#include <stdio.h>

int main(int argc,char
*argv[])
{
int i;
for(i
= 1; i< argc; i++)
printf("%s%s",argv[i], (i< argc
- 1)?
"" :
"");
printf("/n");
system("PAUSE");
return
0;
}

將程式編譯後產生可執行檔,這裡命名為ee.exe,路經為D:\。
注意,此代碼在編譯環境中運行是沒有效果的,必須在DOS下運行。

進入DOS環境,進入D:\,輸入

ee Hello world 將會列印出 Hello world 按照C語言的約定,argv[0]的值是啟動該程式的程式名,因此argc的值至少為1。如果argc的值為1,則說明程式名後面沒有命令列參數。在上面的例子中,argc的值為3,argv[0]、argv[1]和argv[2]的值分別為“ee”、“Hello”和“world”。 UNIX系統中,C語言程式有個公用的約定,以負號開頭的參數表示一個可選的標誌或參數。模式尋找程式:#include <stdio.h>
#include <string.h>
#define MAXLINE 1000
int getline(char line[],int max);

main(int argc,char
*argv[])
{
char line[MAXLINE];
long lineno=
0;
int c,except=
0,number=
0,found=
0;

while(--argc>0&&
(*++argv)[0]==
'-')
while(c
= *(++argv[0]))
switch(c)
{
case'x':
except =
1;
break;
case'n':
number =
1;
break;
default:
printf("find:illegal option %c\n",c);
argc =
0;
found =
-1;
break;
}
if (argc
!= 1)
printf("Usage:find -x -n pattern\n");
else
while (getline (line ,MAXLINE)>
0)
{
lineno++;
if ((strstr(line ,*argv)!= NULL)
!= except)
{
if (number)
printf("%ld:",lineno);
printf("%s\n",line);
found ++;
}
}

return found;
}

int getline(char s[] ,int lim)
{
int c,i;
for (i
= 0;i< lim-1&&
(c = getchar())!='\n';
i++ )
s[i] = c;
s[i] =
'\0';
return i;
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.