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);
} 展开
,
#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);
} 展开
4个回答
展开全部
举个例子,你在命令行下输入 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时候,才可以认为有输入参数
如果你输入notepad.exe a.txt,则参数个数argc为2,第一个参数argv[0]是程序名本身,第二个参数argv[1]是“a.txt”,功能是打开记事本程序并显示文件a.txt。而argv[1]才是第一个有意义的参数,所以楼上这么说也没错
从上面的说明可以看到,argc == 1时候,参数只有程序名本身,并没有有意义的参数,也就是没有输入要打开的文件名。只有 argc > 1时候,才可以认为有输入参数
展开全部
1、main(int argc,char *argv[]),主函数传入的参数,也叫命令行参数
用法: exe文件 + 参数1 +参数 2 等等
2、fp1 、fp2 跟命令行参数的关系是;
参数1 赋 给了 fp1,参数2 赋给了 fp2
用法: exe文件 + 参数1 +参数 2 等等
2、fp1 、fp2 跟命令行参数的关系是;
参数1 赋 给了 fp1,参数2 赋给了 fp2
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
argc 是参数个数,再该题中参数个数应该为三。argv是具体参数,其中第一个参数argv[0]是默认含有的,即该程序可执行文件的路径,这题中第二个参数argv[1]应该是你fp1所打开的文件全名,包括路径和文件名,第三个参数argv[2]是fp2所打开的文件全名。就是这样,望采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
他们代表的是参数,argc代表的是参数个数。argv[1]代表第一个参数,argv[2]代表第二个参数,以此类推
追问
argv[1]代表第一个参数? 数组不应该是argv[0]是第一个参数么? 这里的参数和fp1 fp2有什么关联呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询