鱼C论坛

 找回密码
 立即注册
查看: 2875|回复: 4

求助

[复制链接]
发表于 2016-6-5 21:01:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <stdio.h>
#include <stdlib.h>

int main (int argc,char *argv[])
{
        int ch;
        FILE *fp;
        long count=0;

        if(argc!=2)
        {
                printf("Usage:%s filename\n",argv[0]);
                exit (1);
        }
        if ((fp=fopen(argv[1],"r"))==NULL)
        {
                printf("Can't not open %s\n",argv[1]);
                exit(1);
        }
        while ((ch=getc(fp))!=EOF)
        {
                putc(ch,stdout);
                count++;
        }
        fclose(fp);
        printf("File %s has %ld characters\n",argv[1],count);
        return 0;
}
请问这个程序到底什么意思?这个变量argc什么意思,都没有初始化,怎么又在if语句中比较了,这个是书上的例子,但没讲这些细节,这是说明了文件操作的函数,求助
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-6-5 21:24:29 | 显示全部楼层
各位,别光看,帮我解答下谢谢啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-6-5 22:08:44 | 显示全部楼层
首先,main函数是程序的入口,也就是操作系统执行你的程序是从main开始执行的。不知道你用过ping命令吗,ping后面输入的ip就是ping程序的参数。main函数的那个形参argv就是用来存储程序参数的,因为参数可以有多个,所以使用char*型的数组来存储,而argc就是用来存储参数的个数。
事实上,argc(也就是参数个数)是大于等于1。因为argv中存储的第一个参数就是程序本身的路径。你的程序里if(argc!=2)也就是判断程序执行时后面有没有输入参数。你可以在cmd中执行以下这个程序,后面加一个文本文件路径的参数。like this:xxx.exe filename.txt
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-6-6 15:50:26 | 显示全部楼层
那个是控制台接受的参数的个数的意思。第二参数十控制台接受的参数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-6-6 23:13:37 | 显示全部楼层
兄弟这个程序其实就是说  好  程序 开始了  第一步来看看有几个参数, argc!=2 只要不是2个的参数时就把第一个参数打印出来@花落、季 已经说过的就是该程序的路径 ok.....   
   如果还有参数呢 就来看看它是不是空  argc[1] == null  如果是空就拜拜,不是的话就打印出来并且检测出一共有多少个字符....
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-27 02:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表