main() 是程式入口,可為無參或有參。帶參形式:
int main(int argc, char *argv[]) {
// argc: 參數個數(含程式名)
// argv: 指標陣列,各元素指向一個命令列字符串
}
系統啟動程式時,將命令列解析傳給 main:
命令列: program str1 str2 str3 str4 str5
│ │ │ │ │ │
▼ ▼ ▼ ▼ ▼ ▼
argv[0] argv[1] argv[2] argv[3] argv[4] argv[5]
argc = 6
argv[0]:程式名(可執行檔名稱)argv[1]~argv[argc-1]:使用者提供的參數atoi、atof)
#include <graphics.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
#define PI 3.1415926
int main(int argc, char *argv[]) {
int x, y, r1, rs, color;
double a;
int gdriver = DETECT, gmode;
if (argc < 4) {
printf("用法: %s r1 rs color\n", argv[0]);
return 1;
}
initgraph(&gdriver, &gmode, "..\\bgi");
r1 = atoi(argv[1]); // 基礎圓半徑
rs = atoi(argv[2]); // 同心圓半徑
color = atoi(argv[3]); // 背景色
cleardevice();
setbkcolor(color);
setcolor(4);
for (a = 0; a <= 2*PI; a += PI/18) {
x = r1 * cos(a) + 320;
y = r1 * sin(a) + 240;
circle(x, y, rs);
}
getch();
closegraph();
return 0;
}
編譯連結生成 L6-29.exe 命令列執行: L6-29 40 20 3 對應: argv[1]="40", argv[2]="20", argv[3]="3"