kowala's home

kowala's home
這裡是我的學習筆記,陸續增加中。
http://kowala21.blogspot.com

2011-07-13

Turbo C -參數 main(int argc, char *argv[])

這幾天幫人重整老東西,用 Turbo C 2.0 寫的,就順手把它整理上來放,現在好像很多學校還是喜歡用這個工具來教學,特別是資料結構之類的課。Turbo C 簡稱 TC,是 Borland 公司的產品,現在好像有開放下載,所以 Google 一查就可以找到載點。

main(int argc, char *argv[])

這是甚麼呢?這是很古早時代在用的東西,當程式執行時,在程式尾端掛幾個參數,這是很常用的手法,那在開發環境中要怎麼寫這種程式及測試呢,以下就是個小範例。


先來看看程式碼

#include <conio.h>
#include <stdio.h>
#include <string.h>

char str1[32];
char str2[32];
char str3[32];

int main(int argc, char *argv[]) {

    int i;
    clrscr();

    printf("\nargc = %d\n",argc);
    for(i=0;i<=3;i++)printf("argv[%d] = %s\n",i,argv[i]);

    strcpy(str1,argv[1]);
    strcpy(str2,argv[2]);
    strcpy(str3,argv[3]);

    printf("\n");
    printf("str1 = %s\n",str1);
    printf("str2 = %s\n",str2);
    printf("str3 = %s\n",str3);
  
    return(0);
}

執行結果


傳入參數在 Turbo C 中的設定


說明

上圖紅色所框的部分就是宣告引入參數
int argc 這個是傳入的參數個數,是整數值
char *argv[]  這個是參數值,是C字串格式,如果要用數字的話,可以使用 atoi() 來轉數字。

例如
count=atoi(argv[0]);    /* 字串轉數字 */

參數部分說明,本例是測試 3 個參數,

d2340.354
opennum
e2340.354

但是 argc 卻會顯示 4 個,因為 argv[] 第一個都固定放程式的執行路徑,所以變成4個了,如圖一可知,參數有四個。

要如何取出參數呢,我們知道參數是C字串,不能直接指定給變數 str1、str2、str2,而是要透過函數 strcpy() 取出。

char str1[32];
char str2[32];
char str3[32];
....

    strcpy(str1,argv[1]);
    strcpy(str2,argv[2]);
    strcpy(str3,argv[3]);

這樣就行了。 ^^

[註]C字串:就是字元陣列,在最尾端擺入 '\0' 當作字串結束標記
char mystr = {'a','b','c','d','e','f','g','\0'}
mystr = "abcdefg";
古早時候是沒有 String 的。

沒有留言:

張貼留言

請提供您的寶貴意見 ;-)