C语言文件输入/输入问题

来源:百度知道 编辑:UC知道 时间:2024/05/24 14:29:32
#include<stdio.h>
#include<stdlib.h>
int main(int argc,char *argv[])//在这定义变量是什么意思?
{
int ch;
FILE *fp;
long count=0;
if(argc!=2)//在这argc好像并没有赋值吧,怎么会出这个比较条件呢?
{
printf("Usage:%s filename\n",argv[0]);
exit(1);
}
if((fp=fopen(argv[1],"r"))==NULL)//这就更看不懂了
{
printf("Can't 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;
}

谁能帮我写出这段函数的详细注释,我将感激不尽~~~小弟就这些分,我去赚分,赚完了再给你~~~

就凭这学习态度,不给分都给你讲!
#include<stdio.h>
#include<stdlib.h>
int main(int argc,char *argv[])//这个就像二楼给你解释的那样
{
int ch;
FILE *fp;
long count=0;
if(argc!=2)//这个argc是命令行参数的个数 运行程序的时候会自动赋值的
{
printf("Usage:%s filename\n",argv[0]);
exit(1);
}
if((fp=fopen(argv[1],"r"))==NULL)//这个说明你的 第二个参数应该是个文件名
{
printf("Can't open %s \n",argv[1]);
exit(1);
}
while((ch=getc(fp))!=EOF)//对文件进行读操作 一个字符一个字符的读直至文件末尾,EOF为文件结束的标志 ps:应该是fgetc吧
{
putc(ch,stdout); //这个应该是将其写入stdout文件吧,可是文件并没有打开啊,你确定程序是正确的?
count++; //计算文件所含字符数
}
fclose(fp);
printf("File %s has %ld characters\n",argv[1],count);

return 0;
}

argc -- 命令行位置参数总个数,包括程序名
*argv[] -- 命令行位置参数字符串 数组。argv[0] 存 程序名

例如,你编译好的程序叫 hai.exe
运行命令行:
hai.exe a.txt 123
那么 argc = 3
argv[0]是 hai.exe
a