请教关于C语言的命令行参数 echo程序是什么?

供稿:hz-xin.com     日期:2025-01-18
c语言 命令行参数

对,用cmd打开之后,第一个参数写程序名(要包含路径),后面输你要输的参数,每个参数间用空格格开。不知道你说的程序在E盘c文件夹是指源程序(.C)还是exe程序,如果是exe程序,你的路径就是
E:\c文件夹\echo
整个命令就是 E:\c文件夹\echo BASIC FORTRAN COBOL PASCL
如果文件夹名是中文,把它改为英文。
如果是源程序,要先用编译器编译。

问题一:argc是传给main函数的参数,表示命令行上参数的个数,在main函数内当然可以修改,default表示有非法参数让argc=0从而结束while循环
问题二: argc!=1表示程序调用方式不对,printf打印使用程序的正确方法,find - x -n pattern,前面的while循环处理了以'-'开始的命令行参数,并且每次将argc自减1,还有一个pattern需要查找的模式字符串参数未处理,因此如果正确调用程序argc==1将执行else中的语句
问题三:else部分的第一个if:!=except怎么理解?except初值为0,表示假,如果find 有-x参数while循环中将excpet赋值为1 ,strstr(line,*argv)!=NULL查找到pattern为1如果except为1,则两者相等,会打印不包含模式的行,如果except为0则打印包含模式的行

这个就是C语言的命令行参数和main函数之间的参数转换关系的详细解释了。

1、首先明确一下我们编译出来的可执行程序
windows编译出来的可执行程序扩展名为exe,比如test.ext,楼主例子中的echo.exe,运行程序的时候exe可以省略。

我们要执行一个程序,第一个肯定是要写上程序的名字,比如echo.exe或者echo,然后后面跟参数,比如楼主程序里面的hellow, world,就是2个参数,以空格分开,第一个参数是hellow,,第二个参数是world

2、然后再看一下程序是如果将我们写的参数传递给可执行程序的。
main函数的参数是两个int argc,char *argv[],argc就是参数的个数,argv数组就是具体的参数了。

程序执行时,会根据我们输入的个数来决定给main函数传递什么东西。按照空格分开,每一个输入就是一个参数(注意:也要包含程序本身的名字,也是一个参数)

即当我们输入echo hellow, world的时候,main函数接收到3个参数,echo,hellow,和world,这个时候argc就等于3,argv[0]是echo,argv[1]是hellow,,argv[2]world。

3、估计楼主疑惑的就是可执行程序的名字为什么也是一个参数,这个是C语言的规范,记住就行了哈。

首先,reeturn多了个字符,main前面应该是int返回值
然后,试试system("echo hello world\n");

最后,我理解你可能是想知道main函数的两个参数是做什么的,那么你就试试用控制台窗口切换到你的程序所在文件夹下,然后在控制台下输入"#yourAppName# hello,world!" 试试
如果不会用控制台的cd命令,就试试在你的应用的文件夹下按shift+鼠标右键,选择“在此处打开命令窗口”,然后输入"#yourAppName# hello,world!"

C语言中打印这个AMP_EQ_MOVIE[]数组参数的值并且每行满20个参数后自动...
手机编码太麻烦,大体说一下。用两个for循环嵌套,外层控制列,内层控制行,每循环完一次行,打印一个\\n。这样说能明白不?

谁给解释一下文件的后缀?多谢了
.bak:备份文件,一般是被自动或是通过命令创建的辅助文件,它包含某个文件的最近一个版本,并且具有于该文件相同的文件名 .bas Basic:语言源程序文件,可编译成可执行文件,目前使用Basic开发系统的是Visual Basic .bat:批处理文件,在MS-DOS中,.bat文件是可执行文件,有一系列命令构成,其中可以包含对其他程序的调用 .b...