无论是操作系统中的很多命令,还是很多科学计算程序,都会存在参数输入,形如:

mybin -a10 -b100.0/23.0 infile

在C语言中,主要通过main函数的输入参数int argc与char **argv来控制(其它编程语言也是相同或相似的操作)

argc为输入参数的个数

argv为输入参数字符串,其中argv[0]为运行程序路径及名称,argv[1], argv[2], ...分别为输入参数段1,2,...

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

int innum = 0;

int i;

int error = 0;

float evla, evlo, evdep, evmag;

float stla, stlo;

int outflag;

char inputfile[256];

// get input para

for(i=1; i

if(argv[i][0] == '-') {

switch(argv[i][1]) {

case 'L':

sscanf(&argv[i][2],"%f/%f/%f/%f",&evla,&evlo,&evdep,&evmag);

break;

case 'S':

sscanf(&argv[i][2],"%f/%f",&stla,&stlo);

break;

case 'F':

sscanf(&argv[i][2],"%d",&outflag);

break;

default:

error = 1;

break;

}

}

}

if(argc < 5 || error == 1){

fprintf(stderr, "Usage: mybin -L(evla/evlo/evdp/mag) -S(stla/stlo) -F(flag) INPUT.in\n");

return -1;

}

//

strcpy(inputfile,argv[5]);

}

上述代码段实现了读取4个输入参数段的过程,四个参数对应的argc为什么等于5呢?这是因为argv[0]为程序的路径和名称,在for(i=1; i

上述使用'switch'语句读取参数,并不要求参数段按照上述读取顺序排列,而是可以随意调换的,但是要求每个参数段都是以-作为起始标识,如果参数关键字argv[i][1]不在L, S, F三个中的一个,那么输入参数段的格式不对,此时error=1

最后一个参数必须是输入文件,该参数段就是一个字符串,并没有以-为起始标识,所以会进入switch代码段

c语言 argv参数,C程序的输入参数(int argc, char **argv)相关推荐

  1. main(int argc,char *argv[ ],char *env)参数详解

    转载自百度文库   http://wenku.baidu.com/view/22490664783e0912a2162a65.html main(int argc,char *argv[ ]) arg ...

  2. 关于main函数的(int argc,char *argv[])

    main(int argc,char *argv[ ]) argv为指针的指针 argc为整数 char **argv or: char *argv[] or: char argv[][] main( ...

  3. int main(int argc, char* argv[])

    以前学C语言的时候,很少用到int argc,char *argv[],感觉没啥用,所以也就没怎么了解.现在用到了,来学习一下.argc命令行输入参数的数量,argv是字符数组,看代码. [mapan ...

  4. C语言 main 函数参数 main(int argc, char *argv[]) - C语言零基础入门教程

    目录 一.main 函数写法 二.main 函数参数简介 三.使用 main 函数参数 1.打印 main 函数参数 a.直接运行 exe 文件 b.打开 cmd 命令行窗口执行 exe 文件 c.打 ...

  5. 学习指针后对int main(int argc, char *argv[]),“()“内部参数的详解(初学者不要怕,浅浅学过指针的就可以看懂)

    大二时,出学51单片机时,经常写程序然后烧录程序,免不了去借鉴一些大佬的代码,但有些代码的主函数在当时的我看起来很奇怪,因为那时学的少,所以时常不敢于借鉴.例如int main(int argc,ch ...

  6. c 语言 int argc,C语言深度学习之int main(int argc,char **argv)的理解及延申

    C语言深度学习之int main(int argc,char **argv)的理解及延申 前者为可接受 命令行参数,argc表示参数个数, argv[]是参数数组,其中第0个参数是程序本身的名称(包含 ...

  7. int main(int argc,char *argv[]),主函数的参数问题

    主函数的参数 在VC++中,我们有时候看到一些程序的主函数是带有参数的,虽然我们经常用到VC++但是对主函数的参数并不是很理解: int main(int argc,char *argv[]) 对于里 ...

  8. int main( int argc , char *argv[] , char *envp[] )中参数解说

    原文链接:https://blog.csdn.net/mengyandelove/article/details/82285504 argc是命令行总的参数个数 argv[]是argc个参数,其中第0 ...

  9. 关于 命令行参数 main(int argc,char** argv)

    void main(int argc, char* argv[ ])等同于void main(int argc, char* *argv) 这行中有三个字符串分别为 cp.exe doc1.txt d ...

最新文章

  1. mv命令(移动和重命名)
  2. 用AI指挥另一个AI,GAN+CLIP的组合成了“CG艺术家”
  3. html5拍照上传 java_如何使用HTML5实现拍照上传应用
  4. 白居易--《祭李侍郎文》
  5. 存根类 测试代码 java_嘲弄和存根–了解Mockito的测试双打
  6. 喜用神最正确的算法_各种电磁仿真算法的优缺点和适用范围(FDTD, FEM和MOM等)...
  7. Python抽象类介绍
  8. js解码编码decodeURI与decodeURIComponent区别
  9. 在线RGB和HEX十六进制颜色互转工具
  10. rpm yum 删除mysql
  11. [渝粤教育] 西安交通大学 光通信器件及系统 参考 资料
  12. 数据分类分级指南数据服务分类类目表
  13. 记:判断三个点是否在一条直线上
  14. 数据结构 | 合并两个长度分别为m和n的有序表,最坏情况下需要比较m+n-1次
  15. 缩放图片至固定大小,尺寸不足以0填充
  16. 【应用C】C语言实现离散数学合式公式的递归判断
  17. 计算机组成原理 实验五 单周期cpu
  18. cad app android,迷你CAD免费手机版
  19. Python数据分析:数据库索引如何提高效率?
  20. Python-混音、叠加音频、拼接音频及批处理

热门文章

  1. android定时器
  2. Replit的野心,让Web3的创作者写代码像写文章一样简单
  3. Android开发: 分享利用好Kotlin的特点提高开发效率
  4. c语言while与until的用法,while和until循环
  5. pycharm、webstorm 命令行 Smart commands execution Highlighted commands can be interpreted and executed
  6. 腾讯ui测试机实时预览软件,移动设备中实时预览APP设计效果图的2款国产神器
  7. mysql查询单一分行客户情况_数据库--单业务场景的客户需求
  8. 如何写出一篇爆款文章?【CSDN攻略】创作技巧篇
  9. JS之instanceof详解
  10. 开发者模式打开与荣耀MagicUi系列真机检测不到解决方案