C语言fopen, 带参数main函数疑问。

下面其中出现的argc==1,argv[1],argv[2],argc==2各代表什么?他们和两个文件地址fp1fp2是什么关系?没怎么看明白求解。,#include<s... 下面其中出现的argc==1,argv[1],argv[2],argc==2各代表什么? 他们和两个文件地址 fp1 fp2是什么关系?没怎么看明白 求解。
,
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
main(int argc,char *argv[])
{
FILE *fp1,*fp2;//指向fp1和fp2两个文件的意思么?
char ch;
if(argc==1) // argc==1为什么是没有输入文件名的意思?
printf("have not enter file name strike any key exit");
getch();
exit(0);
}
if((fp1=fopen(argv[1],"rt"))==NULL)
{
printf("Cannot open %s\n",argv[1]);
getch();
exit(1);
}
if(argc==2) fp2=stdout;
else if((fp2=fopen(argv[2],"wt+"))==NULL)
{
printf("Cannot open %s\n",argv[1]);
getch();
exit(1);
}
while((ch=fgetc(fp1))!=EOF)
fputc(ch,fp2);
fclose(fp1);
fclose(fp2);
}
展开
 我来答
深海_蓝鱼
2013-10-11 · TA获得超过423个赞
知道小有建树答主
回答量:178
采纳率:0%
帮助的人:237万
展开全部
举个例子,你在命令行下输入 notepad.exe 就会打开notepad这个记事本程序,这时参数个数argc为1,argv[0]就是程序名本身
如果你输入notepad.exe a.txt,则参数个数argc为2,第一个参数argv[0]是程序名本身,第二个参数argv[1]是“a.txt”,功能是打开记事本程序并显示文件a.txt。而argv[1]才是第一个有意义的参数,所以楼上这么说也没错

从上面的说明可以看到,argc == 1时候,参数只有程序名本身,并没有有意义的参数,也就是没有输入要打开的文件名。只有 argc > 1时候,才可以认为有输入参数
cjj796
2013-10-11 · TA获得超过8709个赞
知道大有可为答主
回答量:1.3万
采纳率:68%
帮助的人:3455万
展开全部
1、main(int argc,char *argv[]),主函数传入的参数,也叫命令行参数

用法: exe文件 + 参数1 +参数 2 等等

2、fp1 、fp2 跟命令行参数的关系是;

参数1 赋 给了 fp1,参数2 赋给了 fp2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mjsgkp
2013-10-11 · TA获得超过112个赞
知道答主
回答量:90
采纳率:0%
帮助的人:74.6万
展开全部
argc 是参数个数,再该题中参数个数应该为三。argv是具体参数,其中第一个参数argv[0]是默认含有的,即该程序可执行文件的路径,这题中第二个参数argv[1]应该是你fp1所打开的文件全名,包括路径和文件名,第三个参数argv[2]是fp2所打开的文件全名。就是这样,望采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友0cfe3dd
2013-10-10 · TA获得超过180个赞
知道小有建树答主
回答量:133
采纳率:0%
帮助的人:97.8万
展开全部
他们代表的是参数,argc代表的是参数个数。argv[1]代表第一个参数,argv[2]代表第二个参数,以此类推
追问
argv[1]代表第一个参数?  数组不应该是argv[0]是第一个参数么?  这里的参数和fp1   fp2有什么关联呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式