c语言 argv参数,C程序的输入参数(int argc, char **argv)
无论是操作系统中的很多命令,还是很多科学计算程序,都会存在参数输入,形如:
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)相关推荐
- main(int argc,char *argv[ ],char *env)参数详解
转载自百度文库 http://wenku.baidu.com/view/22490664783e0912a2162a65.html main(int argc,char *argv[ ]) arg ...
- 关于main函数的(int argc,char *argv[])
main(int argc,char *argv[ ]) argv为指针的指针 argc为整数 char **argv or: char *argv[] or: char argv[][] main( ...
- int main(int argc, char* argv[])
以前学C语言的时候,很少用到int argc,char *argv[],感觉没啥用,所以也就没怎么了解.现在用到了,来学习一下.argc命令行输入参数的数量,argv是字符数组,看代码. [mapan ...
- C语言 main 函数参数 main(int argc, char *argv[]) - C语言零基础入门教程
目录 一.main 函数写法 二.main 函数参数简介 三.使用 main 函数参数 1.打印 main 函数参数 a.直接运行 exe 文件 b.打开 cmd 命令行窗口执行 exe 文件 c.打 ...
- 学习指针后对int main(int argc, char *argv[]),“()“内部参数的详解(初学者不要怕,浅浅学过指针的就可以看懂)
大二时,出学51单片机时,经常写程序然后烧录程序,免不了去借鉴一些大佬的代码,但有些代码的主函数在当时的我看起来很奇怪,因为那时学的少,所以时常不敢于借鉴.例如int main(int argc,ch ...
- c 语言 int argc,C语言深度学习之int main(int argc,char **argv)的理解及延申
C语言深度学习之int main(int argc,char **argv)的理解及延申 前者为可接受 命令行参数,argc表示参数个数, argv[]是参数数组,其中第0个参数是程序本身的名称(包含 ...
- int main(int argc,char *argv[]),主函数的参数问题
主函数的参数 在VC++中,我们有时候看到一些程序的主函数是带有参数的,虽然我们经常用到VC++但是对主函数的参数并不是很理解: int main(int argc,char *argv[]) 对于里 ...
- int main( int argc , char *argv[] , char *envp[] )中参数解说
原文链接:https://blog.csdn.net/mengyandelove/article/details/82285504 argc是命令行总的参数个数 argv[]是argc个参数,其中第0 ...
- 关于 命令行参数 main(int argc,char** argv)
void main(int argc, char* argv[ ])等同于void main(int argc, char* *argv) 这行中有三个字符串分别为 cp.exe doc1.txt d ...
最新文章
- mv命令(移动和重命名)
- 用AI指挥另一个AI,GAN+CLIP的组合成了“CG艺术家”
- html5拍照上传 java_如何使用HTML5实现拍照上传应用
- 白居易--《祭李侍郎文》
- 存根类 测试代码 java_嘲弄和存根–了解Mockito的测试双打
- 喜用神最正确的算法_各种电磁仿真算法的优缺点和适用范围(FDTD, FEM和MOM等)...
- Python抽象类介绍
- js解码编码decodeURI与decodeURIComponent区别
- 在线RGB和HEX十六进制颜色互转工具
- rpm yum 删除mysql
- [渝粤教育] 西安交通大学 光通信器件及系统 参考 资料
- 数据分类分级指南数据服务分类类目表
- 记:判断三个点是否在一条直线上
- 数据结构 | 合并两个长度分别为m和n的有序表,最坏情况下需要比较m+n-1次
- 缩放图片至固定大小,尺寸不足以0填充
- 【应用C】C语言实现离散数学合式公式的递归判断
- 计算机组成原理 实验五 单周期cpu
- cad app android,迷你CAD免费手机版
- Python数据分析:数据库索引如何提高效率?
- Python-混音、叠加音频、拼接音频及批处理
热门文章
- android定时器
- Replit的野心,让Web3的创作者写代码像写文章一样简单
- Android开发: 分享利用好Kotlin的特点提高开发效率
- c语言while与until的用法,while和until循环
- pycharm、webstorm 命令行 Smart commands execution Highlighted commands can be interpreted and executed
- 腾讯ui测试机实时预览软件,移动设备中实时预览APP设计效果图的2款国产神器
- mysql查询单一分行客户情况_数据库--单业务场景的客户需求
- 如何写出一篇爆款文章?【CSDN攻略】创作技巧篇
- JS之instanceof详解
- 开发者模式打开与荣耀MagicUi系列真机检测不到解决方案