今天下午上实验课的时候闲着的时候就把你的这帖子的问题上机弄了弄,因为这个问题我也一直处于有点糊涂的(因为本人也是菜鸟,呵呵!),下面我就把这个问题给你讲解一下!
这些只是我个人的理解!也许讲解的可能会有错误,如果有讲的不对的地方希望高手能够指正!
这个是你写的代码,我给贴出来:
你的这段代码是没有问题,起码我没有发现错误!
然后我启动了我的命令行窗口:
下面我就要进行输入命令行参数了,但是首先我要知道我的可执行文件的路径是什么,
我的可执行文件文件也就是proj.exe的路径是:E:\编程文件夹\proj\Debug
然后我在命令行中输入:
这样我就可以进行命令行的输入了,因为我们必须要明确我们可执行文件的路径,只有这样才可以进行接下来的操作!
然后我们输入可执行文件的名字,一个我们要查找的字符串,在这里我们设定要查找的字符串为:Hello World!,最后是我们建立的文件的名字:
注意(我在这里要输入的是一个字符串,这个字符串中间是有一个空格的,如果我们直接往输入Hello World!是错误的,因为程序读入的命令行参数是按照空格作为结束的标志的!)
如果我们直接输入Hello World!的话看一下:
发现这样输入是不正确的!!因此我们在输入一个字符串特别是中间有空格的时候一定不要直接输入,我们应该按照c语言中要求的那样,给这个字符串加上双引号!这一点一定要记住!!!!!!!
因此我们加上双引号输入:
这样的输入才没有错误!!!才是正确的!!!!
同时还有一点要说明一下,我们的proj.exe可执行文件要和我们建立的文本文件1.txt要放在同一个路径中,这是因为命令行窗口中我们输入的路径是:E:\编程文件夹\proj\Debug,这样以后的每一个文件系统会默认都是在该路径中,都会去这个路径中去查找!!!
关于命令行参数就讲解这么多吧,希望我讲解的是明白的!!如果在讲解中有什么错误也希望指正出来!!呵呵!
[ 本帖最后由 我菜119 于 2010-11-12 19:23 编辑 ]
这些只是我个人的理解!也许讲解的可能会有错误,如果有讲的不对的地方希望高手能够指正!
这个是你写的代码,我给贴出来:
你的这段代码是没有问题,起码我没有发现错误!
程序代码:
#include <stdio.h> #include <string.h> void main (int argc,char *argv[]) { FILE *inp; char str[10]; printf("%d\n",argc); if((inp = fopen(argv[2],"r"))==NULL) //应该是这里出问题了。。文件打不开。。。。 printf("cant open"); while(fgets(str,10,inp)!=NULL) { if(strstr(str,argv[1])) printf("%s\n",str); } }我建立的工程:proj,生成的可执行文件:proj.exe , 然后我又建立了一个txt文件,命名为:1.txt ,该文件中的内容是:
然后我启动了我的命令行窗口:
下面我就要进行输入命令行参数了,但是首先我要知道我的可执行文件的路径是什么,
我的可执行文件文件也就是proj.exe的路径是:E:\编程文件夹\proj\Debug
然后我在命令行中输入:
这样我就可以进行命令行的输入了,因为我们必须要明确我们可执行文件的路径,只有这样才可以进行接下来的操作!
然后我们输入可执行文件的名字,一个我们要查找的字符串,在这里我们设定要查找的字符串为:Hello World!,最后是我们建立的文件的名字:
注意(我在这里要输入的是一个字符串,这个字符串中间是有一个空格的,如果我们直接往输入Hello World!是错误的,因为程序读入的命令行参数是按照空格作为结束的标志的!)
如果我们直接输入Hello World!的话看一下:
发现这样输入是不正确的!!因此我们在输入一个字符串特别是中间有空格的时候一定不要直接输入,我们应该按照c语言中要求的那样,给这个字符串加上双引号!这一点一定要记住!!!!!!!
因此我们加上双引号输入:
这样的输入才没有错误!!!才是正确的!!!!
同时还有一点要说明一下,我们的proj.exe可执行文件要和我们建立的文本文件1.txt要放在同一个路径中,这是因为命令行窗口中我们输入的路径是:E:\编程文件夹\proj\Debug,这样以后的每一个文件系统会默认都是在该路径中,都会去这个路径中去查找!!!
关于命令行参数就讲解这么多吧,希望我讲解的是明白的!!如果在讲解中有什么错误也希望指正出来!!呵呵!
[ 本帖最后由 我菜119 于 2010-11-12 19:23 编辑 ]
愿用余生致力编程