c/c++程序main函数参数解析,以及参数传递的不同方法
来源:互联网 发布:喀秋莎录屏软件破解版 编辑:程序博客网 时间:2024/05/19 19:41
1. 程序运行时传递参数的不同方法:
1)通过命令参数传递参数; 2) 通过txt文件读取参数。
2. 方法举例
1)通过命令参数传递参数,即解析main函数的参数。
main函数可以不带参数,也可以带参数,这个参数可以认为是 main函数的形式参数。C语言规定main函数的参数只能有两个,习惯上这两个参数写为argc和argv。所以C99标准中规定只有以下两种定义方式是正确的:
int main(void) //无参形式
int main(int argc, char *argv[]) //有参形式
当然有参形式可以进行演变,所以下面的写法也是正确的(同时变量名是可以更换的):
int main(int argc, char **argv) //有参的另一种形式
int parseOptions(int argc, char** argv, int &imgWid, int &imgHei, int &imgCnt){ int i = 0; if(argc == 1) { return -1; } for (i = 1; i < argc; i++) { if (strcmp(argv[i], "-w") == 0) { imgWid = (int)atoi(argv[++i]); } else if (strcmp(argv[i], "-h") == 0) { imgHei = (int)atoi(argv[++i]); } else if (strcmp(argv[i], "-c") == 0) { imgCnt = (int)atoi(argv[++i]); } else return -1; } return 0;}int main(int argc, char** argv){ int imgWid, imgHei, imgCnt; if(-1 == parseOptions(argc, argv, imgWid, imgHei, imgCnt)) { printf("Get parameter failed!\n"); exit(-1); } ...}
运行方法为:
a. 在vs下运行时:在工程属性的命令参数行中输入:-w 640 -h 480 -c 10 即可
b. 在DOS下如果生成可执行文件为example.exe放在D盘内,则输入:D:example -w 640 -h 480 -c 10 即可
2)通过TXT文件读取参数
int main(int argc, char** argv){ int imgWid, imgHei, imgCnt; FILE* srcFile = NULL; srcFile = fopen("parameter_list.txt","r"); if (srcFile == NULL) { printf("Open parameter_list failed!\n"); exit(-1); } while (!feof(srcFile)) { fscanf(srcFile,"%d", &imgWid); fscanf(srcFile,"%d", &imgHei); fscanf(srcFile,"%d", &imgCnt); printf("imgWid=%d imgHei=%d imgCnt=%d\n", imgWid, imgHei, imgCnt); ... } ...}
parameter_list.txt文件中的参数如下:
640 480 10
1280 720 10
1920 1080 10
3840 2160 10
0 0
- c/c++程序main函数参数解析,以及参数传递的不同方法
- c的Main函数参数解析
- 给c语言main函数传递参数
- C语言函数参数以及函数参数的传递
- [C]main 函数的参数
- C++main函数的参数
- C main函数的参数
- C++main函数参数以及含义
- Linux C编程--main函数参数解析
- Linux C编程--main函数参数解析 .
- Linux C编程 main函数参数解析
- Linux C编程--main函数参数解析
- linux C main()函数参数解析
- C/C++ main参数传递
- c函数的参数传递
- C函数的参数传递
- c#-函数的参数传递
- C#-函数参数的传递
- Swift函数学习
- js之闭包
- text-fill-color加text-stroke实现页面艺术字
- C++——字符串处理题——万能遥控器
- eclipse调用JNI之环境的搭建
- c/c++程序main函数参数解析,以及参数传递的不同方法
- 反射
- Cassandra3.9版本Java驱动Datastax Java Driver使用手册1-数据库连接
- QT源码各版本下载地址
- The archive: D:/Program Files (x86)/apache-tomcat-6.0.39/bin/bootstrap.jar w
- javascript的100个常用技巧收集
- for(foo('A');foo('B')&&(i<2);foo('C')) ,其实考的就是for (初始化语句; 判断条件; 循环条件)
- 12.java中是否有goto语句
- 2.1详解变量的定义、初始化与赋值