| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1415 人关注过本帖, 1 人收藏
标题:阅读main函数参数的意义,求教!
只看楼主 加入收藏
C语言学徒
Rank: 2
来 自:NamKing
等 级:论坛游民
帖 子:51
专家分:22
注 册:2009-2-27
结帖率:90%
收藏(1)
已结贴  问题点数:19 回复次数:9 
阅读main函数参数的意义,求教!
如题,对于main函数可以有参数一直不明白是怎么回事,麻烦大家给解释下,还有以下程序:
int main(int argc,char **argv)
{FILE *in,*out;
 char line[256];
 int i;
 if(argc!=3) return 1;
 if(!(in=fopen(argv[1],"rt"))) return 2;
 if(!(out=fopen(argc[2],"wt'))) return 3;
 for(i=0;fgets(line,256),in);i++)
fprintf(out,"%3d %s",i+1,line;
fcloseall();return 0;
}

(1)参数argc和argv得意义是什么?其值由什么确定?
(2)程序的功能是什么?
谢谢大哥大姐!
搜索更多相关主题的帖子: 阅读 参数 函数 main 
2009-10-23 16:09
玩出来的代码
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:河南新乡
等 级:贵宾
威 望:11
帖 子:742
专家分:2989
注 册:2009-10-12
收藏
得分:0 
main()中的参数可以百度一下,命令行参数。程序的功能是
{FILE *in,*out;  
char line[256];  
int i;  
if(argc!=3) return 1;              //命令行参数控制的个数argc代表个数。
if(!(in=fopen(argv[1],"rt"))) return 2; //打开文件,在命令行输入参数时argv[1]的值也是文件名(在这里),
if(!(out=fopen(argc[2],"wt'))) return 3; //同上
for(i=0;fgets(line,256),in);i++)       //从指针in所指的文件中读取256个字符到数组line中,
fprintf(out,"%3d %s",i+1,line);       //以格式化的方式把i+1,与数组line中的内容写到out所指的文件中
fcloseall();return 0;                 //关闭所有打开的文件。
}  

离恨恰如春草,更行更远还生。
2009-10-23 16:24
C语言学徒
Rank: 2
来 自:NamKing
等 级:论坛游民
帖 子:51
专家分:22
注 册:2009-2-27
收藏
得分:0 
回复 2楼 玩出来的代码
那么这个程序的功能是干什么的啊?还是不太明白
2009-10-23 16:34
玩出来的代码
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:河南新乡
等 级:贵宾
威 望:11
帖 子:742
专家分:2989
注 册:2009-10-12
收藏
得分:19 
简单的说就是把指针in所指的文件中的内容复制到out指针所指的文件中根据题来说这个文件中的内容是字符,
for(i=0;fgets(line,256),in);i++)       //从指针in所指的文件中读取255个字符到数组line中,  
fprintf(out,"%3d %s",i+1,line);      
每次读取255个字符然后写到out指针所指的文件中,直到取完。

离恨恰如春草,更行更远还生。
2009-10-23 16:46
C语言学徒
Rank: 2
来 自:NamKing
等 级:论坛游民
帖 子:51
专家分:22
注 册:2009-2-27
收藏
得分:0 
谢谢LS指导,谢谢大哥,似乎明白了!
2009-10-23 16:50
UserYuH
Rank: 12Rank: 12Rank: 12
来 自:毅华
等 级:火箭侠
威 望:8
帖 子:720
专家分:3300
注 册:2009-8-10
收藏
得分:0 
把下面的代码保存为name01.c(可以自己改名),再生成应用程序,名为: name01.exe。这样就可以在DOS下测试了。
如输入:
D:\TC0\name01 01.txt 02.txt  回车      ("D:\TC0>"是工作目录,也就是name01.exe的路径)
·
运行后,01.txt文件里的内容复制到新建的02.txt文件里。
程序代码:
#include <stdio.h>  
int main(int argc,char **argv)  
{  
 FILE *in,*out;  
 char line[256];  
 int i;  
 if(argc!=3) return 1;   /* 如参数不对反回1,argc记作输入字符串的个数 */ 
 if(!(in=fopen(argv[1],"r")))return 2;  /* argv[1]保存字符串"01.txt",如打开文件失败反回 2 */ 
 if(!(out=fopen(argv[2],"w"))) return 3;  /* argv[2]保存字符串"02.txt",如打开文件失败反回 3 */
 for(i=0;fgets(line,256,in);i++)  /* 将 01.txt 复制 02.txt  */
   fprintf(out,line);  
 fcloseall();return 0;  
}

argv[0]保存的是程序路径,argv[0]=D:\TC0\NAME01.EXE

努力—前进—变老—退休—入土
2009-10-23 18:03
xiaomeng1991
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2009-10-23
收藏
得分:0 
我也是新手

2009-10-23 19:01
C语言学徒
Rank: 2
来 自:NamKing
等 级:论坛游民
帖 子:51
专家分:22
注 册:2009-2-27
收藏
得分:0 
回复 6楼 UserYuH
谢谢老师的指导,我运行下试试,一直都没弄明白的问题让你给解决了,理论回到实践,原来我都是只看概念上的东西,现在感觉好多了,谢谢!
2009-10-23 22:18
小轿车
Rank: 1
等 级:新手上路
帖 子:5
专家分:4
注 册:2009-12-17
收藏
得分:0 
恩,值得深思啊
2009-12-17 20:05
已屏蔽
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:89
专家分:124
注 册:2009-9-5
收藏
得分:0 
路过学习。。。
2009-12-17 20:55
快速回复:阅读main函数参数的意义,求教!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017503 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved