如何用 linux 實現命令列引數(可變引數實現)
僅用main函式的引數實現一個整數計算器
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <assert.h>
void usage(const char *proc)
{
printf("Usage: %s [-a|s|m|d] data1 data2\n", proc);
}
int main(int argc, char *argv[])
{
if (argc != 4){
usage(argv[0]);
return 1;
}
int data1 = atoi(argv[2]);
int data2 = atoi(argv[3]);
if (strcmp("-a", argv[1]) == 0){
printf("%d + %d = %d\n", data1, data2, data1 + data2); //-a 執行加法
}
else if (strcmp("-s", argv[1]) == 0){
printf("%d - %d = %d\n", data1, data2, data1 - data2); //-s 減法
}
else if (strcmp("-m", argv[1]) == 0){
printf("%d * %d = %d\n", data1, data2, data1*data2); //-m 乘法
}
else if (strcmp("-d", argv[1]) == 0){
if (data2 == 0){
printf("div data is zero!!\n"); //-d 除法
return 2;
}
printf("%d / %d = %d\n", data1, data2, data1 / data2);
}
else{
usage(argv[0]); //其他
return 3;
}
return 0;
}
執行結果:
[ [email protected] 桌面]$ ./text
Usage: ./text [-a|s|m|d] data1 data2
[[email protected] 桌面]$ ./text -a 20 30
20 + 30 = 50
[[email protected] 桌面]$ ./text -d 20 30
20 / 30 = 0
[[email protected] 桌面]$ ./text -s 20 30
20 - 30 = -10
[[email protected] 桌面]$ ./text -m 20 30
20 * 30 = 600
[[email protected] 桌面]$ ./text -p 20 30
Usage: ./text [-a|s|m|d] data1 data2
相關推薦
如何用 linux 實現命令列引數(可變引數實現)
僅用main函式的引數實現一個整數計算器 #include <stdio.h> #include <string.h> #include <stdlib.h>
Linux常用命令列學習(不斷補充...)
建立資料夾 mkdir <資料夾名稱> 列出當前路徑下的資料夾和檔案 ls /*(list)簡單列出當前路徑下的資料夾和檔案*/ ls -l /*列出當前路徑下資料夾和檔案(包括作者、許可權、建立時間等詳細資訊)*/ 進入當前路徑下的資料夾 cd <資料夾名
Linux常用命令列彙總(2)
15、使用gnome-screenshot實現螢幕截圖 使用gnome-screenshot實現延時10秒螢幕截圖。輸入下面命令,然後開啟Applications/Accessories/Text Editor 方法:gnome-screenshot -d 10 16、使用
linux基礎命令總結更新(幹貨!)
路徑 可視化 版本 use con 查看文本 端口號 basename 輸出 alias:查看命令別名(別名只針對用戶有效) alias h=hostname(定義別名) cdnet=‘cd /etc/sysconfig/network-
Linux的命令及三劍客(grep sed awk )
txt 當前 修改 刪除 root alex bak 過濾 dbo 令的介紹1.1 mv 修改兼移動命令1.1.1 移動命令mv 1.1.2 修改命令mv[root@oldboy ~]# mv oldboy.txt oldgirl.txtmv: cannot stat
嵌入式命令列操作(可移植性)
本文件基於stm32f103並移植到F407, MSP430,以及s3c2440 最終效果如下: 以上多餘列印是除錯時解析bug用的,可以去除。 本文參考u-boot命令列,重點部分有三個:①資料定義 ②獲取串列埠資料(1個位元組) ③解析資料 資料定義 typedef v
Java中不定項引數(可變引數)的作用和使用方式
引言: 我們在編寫方法的過程中,可能會遇見一個方法有不確定引數個數的情況。一般我們會用方法過載來解決問題: //方法過載,解決引數個數不確定問題 public void method(); public void method(int i); public void method(int
sqlplus 命令列格式(set,col等)
SQL*PLUS(或 稱sqlplus)裡除了我們經常使用的sql語句外,還有另外一些命令,它們通過對標題、列標題、頁寬、頁長以及時間等引數的格式化操作來控制sql語 句的輸出的內容和格式,常見的比如"set timing on”,"set heading off”等。 基本的SqlPlus命令
sqlplus 命令列格式(set,col等)
QL*PLUS(或 稱sqlplus)裡除了我們經常使用的sql語句外,還有另外一些命令,它們通過對標題、列標題、頁寬、頁長以及時間等引數的格式化操作來控制sql語 句的輸出的內容和格式,常見的比如"set timing on”,"set heading off”等。
Go語言基礎(十一)—— 實現命令列引數對資料的簡單查詢小案例
案例要求: 結合命令列引數、複合型別、包管理、排序等知識,寫一個商品管理系統 商品屬性包括:整型商品ID(gid)、字串型名稱(name)、整型類別(cid)、浮點型價格(price) 自己造一些假資料,實現如下功能: shop.exe -cmd single -gi
get_optlong用法(linux解析命令列引數)
const char * const shor_options = “ho:v” ;struct option 型別陣列該資料結構中的每個元素對應了一個長選項,並且每個元素是由四個域組成。通常情況下,可以按以下規則使用。第一個元素,描述長選項的名稱;第二個選項,代表該選項是否需要跟著引數,需要引數則為1,反
關於Arch Linux efibootmgr 命令列引數問題
相關連結: https://wiki.archlinux.org/index.php/EFISTUB 今天安裝Arch Linux 在 efibootmgr建立啟動項時,總是提示 UUID=xxxx not found 找不到裝置的錯誤,無法啟動系統 官方文件對這個命令的說
Mac/Linux 配置多版本Java,並實現命令列快速切換
0. 目標 使用簡單快捷的命令列,快速的切換本機的Java環境 1. 下載JDK 1.8:官網下載; 1.7:https://pan.baidu.com/s/1iCWtZhK_E-KYwZJcMqQ-mQ 2. 安裝JDK 一路next 安裝完成的路徑:
(轉)Golang 讀取作業系統命令列控制檯傳入的引數列表os.Args的多種方式
方法一 /root/code/go/src/contoso.org/book/main.go package main import ( "fmt" "os" "reflect" "strings" ) func main() {
Linux/Unix 命令列選項前的一橫(-)、兩橫(--)和沒橫
在使用 Linux/Unix 命令的時候,我們可能會對其五花八門的選項表示形式感到困惑,比如: ls -l ls --size ps aux 我們可以發現,這三個命令的選項都有不同的風格,有的是一個
python測試用例覆蓋率工具coverage教程(命令列工具)(譯)
歡迎大家光臨我的部落格 簡介 coverage是一個檢測單元測試覆蓋率的工具,即檢查你的測試用例是否覆蓋到了所有的程式碼。 coverage命令列工具 當你通過pip install coverage成功安裝完coverage後,就會在pytho
linux 常用命令列(持續更新)
linux 常用命令列(持續更新) 1、使用pid查詢埠號 sudo netstat -antup|grep PID號 2、查詢埠號所有情況 sudo netstat -antup 3、啟動、重啟、關閉tomcat伺服器,若沒有許可權則加sudo service tomc
C程式設計--命令列引數(argc 和 argv[])
概念 命令列引數是使用 main() 函式引數來處理的,其中,argc 是指傳入引數的個數,argv[] 是一個指標陣列,指向傳遞給程式的每個引數。 具體寫法:int main(int argc,char* argv[ ]) //注:main()括號內是固定的寫法。 或者寫成:int
linux下命令列連線FTP是遇到的錯誤(425 Failed to establish connection)
linux下命令列連線FTP是遇到的錯誤(425 Failed to establish connection) 首先FTP的執行模式有主動模式和被動模式兩種 然後筆者在工作中搭建了ftp,但是沒有開啟他的被動模式。 然後server端的防火牆開放了21埠。 因此客戶端能連上server,但是輸入命令
Linux的基本命令列操作(精簡版)
Linux操作命令太過強大了,命令數量也居多在本文最下方有下載 Linux命令集文件資料供分享下載 下載地址:http://download.csdn.net/det