修改下面的程序,使之不采用命令行参数,而是请求用户输入文件名并读入用户的响应。
/* count.c -- 使用标准I/O */
#include <stdio.h>
#include <stdlib.h> // ANSI C的exit()原型
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 open %s\n", argv[1]);
exit(1);
}
while((ch = getc (fp)) != EOF)
{
putc(ch, stdout); // 相当于putchar(ch);
count++;
}
fclose(fp);
printf("File %s has %1d characters\n", argv[1],count);
return 0;
}

#include<stdio.h> #include<stdlib.h> int main(void) { int ch; FILE *fp; long count = 0; char name[41]; printf("input the file's name:"); scanf("%s",name); if ( (fp = fopen(name,"r")) == NULL) { printf ("Can't open %s\n", name); exit(1); } while ((ch = getc(fp)) != EOF) { putc(ch,stdout); count++; } fclose(fp); printf ("\nFile %s has %ld characters\n",name,count); return 0; }