主題 關於c語言命令列變元的乙個例項

2021-05-27 21:29:07 字數 2178 閱讀 9926

這是用乙個c語言程式,有關命令列變元。我對c語言命令列變元的用法和意義一直不太明白。這是一本書中的例項,但是我visual studio 2005編寫除錯時,雖然編譯通過,但是出來的預想的不一樣。在命令列變元這塊我一直不太明白,希望有牛人能指點一下。幫我看看,這個程式到底要幹嘛。在這先謝過。

// 006.cpp : 定義控制台應用程式的入口點。

//#include "stdafx.h"

#include"stdlib.h"

#include"ctype.h"

#include"string.h"

int _tmain(int argc, _tchar* argv)

void main(int argc,char *argv)

if(argc==3&&!strcmp(argv[2],"display"))disp=1;

else disp=0;

for(count=atoi(argv[1]);count;--count)if(disp)printf("%d\n",count);

putchar('\a');/*將產生蜂鳴*/

printf("down");

return;

}

請填寫**

第1樓

c語言和c++中的main命令列引數(命令列變元)是需要手動的輸入的;

比如int main(int argc,char *argv)中的argc表示命令行引數(命令列變元)的個數,而char *argv則儲存命令列引數字串,每個引數之間用空格隔開

一般情況下命令列引數(命令列變元)的第乙個字串即 argv[0] 是預設的這個程式的路徑加上函式名;

比如你的程式在c盤個目錄下的test.c  那麼argv[0] = "c:\test.c";

而你手動輸入的命令列引數則是 從argv[1]開始的,並且argc是根據你輸入的字串來統計數目的,一般不會賦值,比如你的程式中將 argc = 3;這是多餘的,而且影響程式執行;

我針對你的程式在三個工具 turboc2.0  vc++6.0 和vs2008上分別執行過,都是沒問題的;不過你的程式中要把 argc = 3 注釋掉,這裡沒必要賦值,賦值反而出錯的;

你的程式我少做了一下修改和注釋;

#include //如果用的是庫函式的標頭檔案,用<>最好,因為他首先查詢庫函式,執行會快

#include 

#include 

#include 

int _tmain(int argc, char* argv)//這個函式完全沒有什麼用

void main(int argc,char *argv)

if(argc == 3 && !strcmp(argv[2],"display") ) 

disp=1;

else disp=0;

for( count=atoi(argv[1]); count; --count)

if(disp)printf("%d\n",count);

putchar('\a');    /*將產生蜂鳴*/

printf("down");

return;

}上面基本上是你的源程式,

在vs裡面輸入命令列引數的辦法是 

在檔案欄  專案 ---> ***程式 屬性 -----> 配置屬性 ---->除錯 ----->命令列引數(在本地windows偵錯程式上啊)輸入你要輸入的引數即可

在vc++6.0 程式中 

工具欄  工程---->設定----->除錯 ---->程式變數  即可輸入

在turboc2.0中 是在

options ----> arguments 在這裡輸入即可

其實你的程式的意思是 

1.讓你輸入命令列引數,如果沒有輸入,就是argc = 1 就執行

printf("you must enter the length of the count\n");

printf("on the command line.try again\n");

exit(1);/*非正常跳出程式*/

這裡如果你把exit(1)注釋掉 就會看到輸出的結果,就是沒有輸入;不注釋就會立即結束

2.如果你輸入的是123 display的話就正常執行了

3.如果你不這樣輸入的話,就會出現其他現象,你自己試試就好了

其實命令列引數不是很難的,你自己看一下吧!

C語言的命令列引數

在圖形介面普及前都是用命令列介面。命令列 command line 是在命令列環境中,使用者為執行程式輸入命令的行。命令列函式 command line argument 是同一行的附加項。如下例是unix環境下的命令列 fuss r gingerfuss就是命令列,後面的是命令列引數。例如在win...

如何了解乙個命令列man

通常是一段描述,通常是命令列的由來 可編寫指令碼的影象處理系統。講解命令列的基本用法,這裡提供了基本的使用格式,一般對於劃線處還會有進一步描述 通常用語簡要描述一下命令列功能應用 針對每乙個選項具體講解,對於劃線處如果不懂,後面會有講述 通常用語講解相關選項,比如這裡就將key的使用做了一些限制 命...

C語言命令列引數的使用

學習c語言時一直不明白main函式帶引數 命令列引數的使用方法,現在來個總結。main函式可以帶兩個形參 argc和argv,argc 是乙個整形變數,argv是乙個指向字串陣列的指標陣列。void main int argc,char argv 函式體 實際上,main函式的引數值是從作業系統命令...