首页 > 试题广场 >

编写一段程序,将一个字符、零个或多个文件名作为命令行参数。如

[问答题]

编写一段程序,将一个字符、零个或多个文件名作为命令行参数。如果字符后没有参数跟随,程序读取标准输入文件。否则,程序依次打开每个文件,然后报告每个文件中该字符的出现次数。文件名和字符本身也与计数值一起报告。程序中包括错误检查,以确定参数数目是否正确和是否能打开文件。如果不能打开文件,程序要报告这一情况然后继续处理下一文件。

推荐
#include <stdio.h>
#include <stdlib.h>
int count(char ch, FILE *fp);
int main(int argc, char *argv[])
{
 int i;
 char ch;
 FILE *fp;
 if (argc<2)
 { 
 printf("no char?\n");
 exit(1);
 }
 ch = argv[1][0];
 if ( argc == 2 )
 { 
 printf("input a article:");
 printf("In your input : %c has been appeared %d times.\n",ch,count(ch,stdin));
 }
 else
 for (i=2;i<argc;i++)
 {
 if( ( fp = fopen(argv[i],"r") ) == NULL )
 printf("Can't open %s\n",argv[i]);
 else
 {
 printf("In %s : %c has been appeared %d times.\n",argv[i], ch, count(ch,fp));
 fclose( fp );
 }
 }
 return 0;
}
int count(char ch, FILE *fp)
{
 int n=0;
 char ch2;
 while( (ch2=getc(fp)) != EOF)
 if( ch == ch2 ) n++;
 return n;
}

发表于 2018-05-05 21:58:51 回复(0)