命令列參數argv傳遞整數給函數的方法

來源:互聯網
上載者:User

這裡有兩個轉換函式,可以將命令列參數argv[]轉化為int型。

1.

int strtoi( const char * str, int base )
/*
函數原型:
int strtoi(const char *str,int base);
描述:
將字串轉換為10進位不帶正負號的整數返回
參數:
const char *str為需要轉換的字串,應由0-9和A-Z組成
int base字串的進位(基數),應為2-36
傳回值:
返回傳入字串所代表的10進位不帶正負號的整數,如果參數錯誤無法轉換返回-1
*/
{
int res = 0 ,t;
const char * p;
for (p = str; * p;p ++ ){
if (isdigit( * p)){
t =* p - ' 0 ' ;
}
else if (isupper( * p)){
t =* p - ' A ' + 10 ;
}
else {
return - 1 ;
}
if (t >= base ) return - 1 ;
res *= base ;
res += t;
}
return res;
}

2.更簡單的方法, 可以使用sscanf 函數實現argv中的字元型向整形變數的轉換.
下面簡單給個例子:

main(int argc, char **argv)
{
cvsize rect={0,0};
sscanf(argv[1],"%u",&rect.width); //假設argv[1]傳遞的第一個參數
sscanf(argv[2],"%u",&rect.height);//
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.