C语言的命令行参数

C语言的命令行参数目录 什么是命令行参数 main 函数的可执行参数 不传参打印 传参打印 IDE 传参 cmd 传参 命令行参数的应用 文件拷贝 什么是命令行参数 概念 命令行参数指的是在运行可执行文件时提供给程序的额外输入信息 它们通常以字符串形式出现 并且紧跟着可执行文件名之后

大家好,我是讯享网,很高兴认识大家。

目录

什么是命令行参数

main函数的可执行参数

不传参打印

传参打印

IDE传参

cmd传参

命令行参数的应用(文件拷贝)


什么是命令行参数

概念:命令行参数指的是在运行可执行文件时提供给程序的额外输入信息。它们通常以字符串形式出现,并且紧跟着可执行文件名之后

//可执行文件program.exe、命令行参数arg1、arg2 program.exe arg1 arg2 

讯享网

main函数的参数

标准定义下,main 函数有两种常见形式:

讯享网//形式一:不接受任何输入参数 int main(void); //形式二:接受两个输入参数:argc与argv int main(int argc, char *argv[]); 

参数含义:

  • argc(argument count):传递给程序的命令行参数个数
  • argv(argument value):指针数组,数组中的每一个指针都指向一个字符串

argc是整型,argv是指针数组

不传参打印

#include <stdio.h> int main(int argc, char* argv[]) { printf("argc = %d\n", argc); for (int i = 0; i < argc; ++i) { printf("argv[%d] =%s\n", i,argv[i]); } return 0; }


讯享网

如果不传入命令行参数时,argc默认为1,即argv[0]默认为当前可执行文件的路径

传参打印

编译器传参

传参步骤:调试->属性->配置属性->调试->命令参数

注意事项:不同参数之间采用空格分隔

传参效果演示:

讯享网#include <stdio.h> int main(int argc, char* argv[]) { printf("argc = %d\n", argc); for (int i = 0; i < argc; ++i) { printf("argv[%d] =%s\n", i,argv[i]); } return 0; }

       此时表示传入了五个参数,除了argv[0]默认为前可执行文件的路径外,还有我们人为传入的“abc”、“def”、“132”、“152”四个参数

命令提示符传参

传参步骤:win + R->cmd->可执行文件的目录下->可执行文件 传参1 传参2 ......

注意事项:

1、可执行文件一般来说都是以.exe结尾的,.c不是可执行文件,如果不确定可执行1文件的目录,可以在不传参时查看agrv[0]的值,即当前可执行文件的路径。

2、进行文件的拷贝时,输入文件要位于当前可执行文件的同一目录下

传参效果演示:

命令行参数的应用(文件拷贝)

#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main(int argc, char* argv[]) { //使用命令行参数打开输入文件 FILE* fpIn = fopen(argv[1], "r"); if (fpIn == NULL) { printf("open %s file error.\n", argv[1]); fclose(fpIn); return -1; } //使用命令行参数打开输出文件 FILE* fpOut = fopen(argv[2], "w"); if (fpIn == NULL) { printf("open %s file error.\n", argv[2]); fclose(fpOut); fclose(fpIn); return -1; } //从输入文件中读取字符,并写入到输出文件中,直到遇到文件结束 char ch = fgetc(fpIn); while (ch != EOF) { fputc(ch, fpOut); ch = fgetc(fpIn); } //关闭输入输出文件 fclose(fpIn); fclose(fpOut); return 0; } 

~over~ 

小讯
上一篇 2025-02-27 08:06
下一篇 2025-04-02 09:50

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/73223.html