鱼C论坛

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

求助

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

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

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

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

  3. int main (int argc,char *argv[])
  4. {
  5.         int ch;
  6.         FILE *fp;
  7.         long count=0;

  8.         if(argc!=2)
  9.         {
  10.                 printf("Usage:%s filename\n",argv[0]);
  11.                 exit (1);
  12.         }
  13.         if ((fp=fopen(argv[1],"r"))==NULL)
  14.         {
  15.                 printf("Can't not open %s\n",argv[1]);
  16.                 exit(1);
  17.         }
  18.         while ((ch=getc(fp))!=EOF)
  19.         {
  20.                 putc(ch,stdout);
  21.                 count++;
  22.         }
  23.         fclose(fp);
  24.         printf("File %s has %ld characters\n",argv[1],count);
  25.         return 0;
  26. }
复制代码
请问这个程序到底什么意思?这个变量argc什么意思,都没有初始化,怎么又在if语句中比较了,这个是书上的例子,但没讲这些细节,这是说明了文件操作的函数,求助
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-6-5 21:24:29 | 显示全部楼层
各位,别光看,帮我解答下谢谢啦
小甲鱼最新课程 -> https://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
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-6-6 15:50:26 | 显示全部楼层
那个是控制台接受的参数的个数的意思。第二参数十控制台接受的参数
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-17 13:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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