c语言程序的命令行输入,C程序获取命令行参数
命令行參數
命令行界面中,可執行文件可以在鍵入命令的同一行中獲取參數用于具體的執行命令。無論是Python、Java還是C等等,這些語言都能夠獲取命令行參數(Command-line argument,與命令同一行中的附加項)。
C編寫的可執行文件的程序入口函數是main函數,因此C程序真正讀取命令行參數的就是main函數。
例:
#include
/*
* test.c 編譯后產生可執行文件test.exe或test.out,程序來源于C Primer Plus第十一章
*/
int main(int argc,char *argv[]) {
int count;
printf("The command line has %d arguments :\n",argc-1);
for (count = 1; count < argc; ++count) {
printf("%d: %s\n",count,argv[count]);
}
return 0;
}
我們在test.exe所在文件夾打開命令行窗口,鍵入test I love you,會輸出:
The command line has 3 arguments:
1: I
2: love
3: you
C標準規定main函數作為程序入口,可以沒有參數,也可以有兩個參數。兩種參數的情況下,第一個參數argc是命令行中的字符串個數,字符串的分隔按空格來判斷,上例中總共輸入了4個字符串,分別是 test, I, love, you。第二個參數argv是一個指向這些字符串的指針數組。命令行界面中輸入的所有字符串被存儲在這個數組中,可以用for循環遍歷。第一個元素當然是命令的名稱。當然,對于接受參數的main函數也可以用另一種聲明:
inr main(int argc, int **argv)。argv是一個指向字符的指針的指針,本質上還是指向包含多個字符串的數組。
命令行界面允許使用雙引號把多個單詞識別成一個參數:
test "I love you."
這其中I love you.被認為是一個整體的參數。
從Win32程序中的主函數中獲取命令行參數
在標準C或者Win32控制臺程序的main函數中,它們都有兩個參數:"argc" 和 "argv",如下所示: int main(int argc, char ...
【WPF】如何獲取命令行參數
應用程序以 Main 方法為入口點,如果為 Main 方法指定一個 string[] 類型的參數,在程序運行時,這個參數會獲取到傳遞給應用程序的命令行參數. 而 WPF 應用程序比較特殊,因為在VS中 ...
【Python學習 】Python獲取命令行參數的方法
背景 最近編寫一個python程序的時候,需要去獲取python命令行的參數,因此這里記錄下如何獲取命令行參數的方法. 一.sys 模塊 在 Python 中,sys 模塊是一個非常常用且十分重要的模 ...
python獲取命令行參數的方法(匯總)
介紹python獲取命令行參數的方法:getopt模和argparse模塊. python版本:2.7 一.getopt模塊 主要用到了模塊中的函數: options, args = getopt.g ...
MFC中獲取命令行參數的幾種方法
在MFC程序中,可以用以下幾種方法來獲取命令行參數. 為方便說明,我們假設執行了命令:C:\test\app.exe -1 -2 方法一 ::GetCommandLine(); 將獲取到 " ...
go語言基礎之獲取命令行參數
1.獲取命令行參數 示例: package main //必須 import "fmt" import "os" func main() { list := o ...
golang獲取命令行參數
部署golang項目時難免要通過命令行來設置一些參數,那么在golang中如何操作命令行參數呢?可以使用os庫和flag庫. 1.golang os庫獲取命令行參數 os可以通過變量Args來獲取命令 ...
[GO]獲取命令行參數
package main import ( "os" "fmt" ) func main() { list := os.Args n := len(list) ...
python獲取命令行參數
python獲取命令行參數 主要是通過sys的argv列表來獲取命令行內容,命令行的參數以空格分隔放到argv列表中. import sys if __name__ == "__main__ ...
隨機推薦
Entity Framework實現多列排序
aList.OrderBy(a => a.WIndex).ThenBy(a=>a.KIndex) 類似sql:order by WIndex,KIndex
AutoMapper 使用實踐
一.?? 使用意圖 常常在開發過程中,碰到一個實體上的屬性值,要賦值給另外一個相類似實體屬性時,且屬性有很多的情況.一般不利用工具的話,就要實例化被賦值實體B,然后再將實體A的字段一個個賦值給B的屬性 ...
Groovy入門經典 隨書重點
1 數值和表達式 1.1數值 整數是Integer類的實例 有小數部分的數值是BigDecimal類的實例 不同于java,沒有基礎數據類型?一切皆對象的概念重于java 1.2表達式 兩個整數的除法 ...
netsh用法
netsh(Network Shell) 是一個windows系統本身提供的功能強大的網絡配置命令行工具. 導出配置腳本:netsh -c interface ip dump > c:\inte ...
nvm配置
多版本安裝方式 卸載已有的Node.js 下載nvm 在C盤創建目錄dev 在dev目中中創建兩個子目錄nvm和nodejs 并且把nvm包解壓進去nvm目錄中 在install.cmd文件上面右鍵選 ...
使用Windows Service Wrapper快速創建一個Windows Service 如nginx
前言 今天介紹一個小工具的使用.我們都知道Windows Service是一種特殊的應用程序,它的好處是可以一直在后臺運行,相對來說,比較適合一些需要一直運行同時不需要過多用戶干預的應用程序,這一類我 ...
IE6 select穿透問題(div 定位無法遮蓋select)!
此問題,早有耳聞,可是一直都沒有親身碰到過,也就沒有過多的去在意這些問題. 這一回總算是見識到了ie的厲害.雖是在ie選項中大大的寫著ie版本號是ie11 .可是有些部分確實走的ie6的內核.怪不得微 ...
NET-知識點:C#中Equals和==比較
第一.相等性比較 其實這個問題的的本質就是C#的相等比較,相等比較可以分兩類: 1.引用相等性,引用相等性指兩個對象引用均引用同一基礎對象. 2.值相等性,值相等性指兩個對象包含相同的一個或多個值,其 ...
empty、isset、is_null的比較
直接上代碼 <?php $a=0; $b='0'; $c=0.0; $d=''; $e=NULL; $f=array(); $g='\0'; $h=' ';//space $i=true; $j ...
總結
以上是生活随笔為你收集整理的c语言程序的命令行输入,C程序获取命令行参数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言中流程图的主要作用是,C语言
- 下一篇: C语言十个字母用冒泡法排序,冒泡排序法(