原需求
1.读取文件,文件内包可含英文字符,及常见标点,空格级换行符。
2.统计英文单词在本文件的出现次数
3.将统计结果排序
4.显示排序结果
新需求:
1.小文件输入. 为表明程序能跑
2.支持命令行输入英文作品的文件名
3. 支持命令行输入存储有英文作品文件的目录名,批量统计
4. 从控制台读入英文单篇作品,重定向输出
代码实现:
在原代码的基础上稍做了修改,使之可以批量读取文件夹下的所有文件,所以加了一个mode来判断是单个文件输入还是文件夹输入,来不及整理程序,所以现在程序有点丑。这次作业交了以后会干两件事,第一是精简程序结构,第二是优化程序性能,可能会重新构思程序的主体部分。
1 if (mode == 2) 2 { 3 printf("输入读入文件夹的名字:"); 4 scanf("%s", &fa); 5 if ((fHandle = _findfirst("*.txt", &fa)) == -1L) //文件夹目录 6 { 7 printf("当前目录下没有txt文件 "); 8 return 0; 9 } 10 else 11 do 12 { 13 fp = fopen(fa.name, "r"); 14 for (i = 0; i < 500; i++) 15 { 16 (w + i)->num = 1; 17 } 18 19 /****************单词匹配****************************************/ 20 i = 0; 21 while (!feof(fp))//文件尚未读取完毕 22 { 23 ch = fgetc(fp); 24 (w + i)->a[j] = '