返回:贺老师课程教学链接
【项目1 - 小玩文件】
1、下面程序的功能是统计文本文件abc.txt中的字符个数,请填空将程序补充完整。
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp;
if((fp=fopen("abc.txt",_______))==NULL) //(1)
{
printf("open error!\n");
exit(1);
}
int i=0;
while(________) // (2)
{
fgetc(fp);
_________; // (3)
}
printf("Character: %d\n", i);
fclose(________);// (4)
return 0;
}
[参考解答]
(1) “r”
(2) !feof(fp)
(3) i++
(4) fp
2、用键盘输入文件名,统计输出文件中每个字母、数字字符出现的次数;
[参考解答]
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp;
char filename[30];
printf("请输入文件名:");
scanf("%s", filename);
if((fp=fopen(filename,"r"))==NULL)
{
printf("open error!\n");
exit(1);
}
int num[10]= {0}; //各数字字符出现的次数,num[0]代表'0'出现的个数……,初值全为0
int low[26]= {0}; //各小写字母出现的次数,low[0]代表'a'出现的个数……,初值全为0
int upper[26]= {0}; //各大写字母出现的次数,upper[0]代表'A'出现的个数……,初值全为0
int i=0;
char ch;
while(!feof(fp))
{
ch=fgetc(fp);
if(ch>='0'&&ch<='9')
num[ch-'0']++; //若ch为'0',num[0]将增加;也可以写作num[ch-48]++
else if (ch>='a'&&ch<='z')
low[ch-'a']++; //若ch为'a',low[0]将增加……
else if (ch>='A'&&ch<='Z')
upper[ch-'A']++; //若ch为'A',upper[0]将增加……
}
fclose(fp);
printf("文件中各个数字字符出现的次数是: \n");
for(i=0; i<10; ++i)
printf("\'%d\'---%d\n", i, num[i]);
printf("文件中各个小写字母出现的次数是: \n");
for(i=0; i<26; ++i)
printf("\'%c\'---%d\n", i+'a', low[i]);
printf("文件中各个大写字母出现的次数是: \n");
for(i=0; i<26; ++i)
printf("\'%c\'---%d\n", i+'A', upper[i]);
return 0;
}
时间: 2024-10-31 04:44:19