文本文件统计信息和显示问题

时间:2016-11-30 13:40:50

标签: c file text

我正在为课程分配工作,我们基本上必须提示用户输入两个文本文件。然后程序应该读取文件,显示它们,并显示单独的文件统计信息。

我一直在研究代码,似乎已经碰壁了。我似乎只能显示第二个文本文件的统​​计信息;而且,来自所述文件的文本似乎没有被显示。

确实很困惑,所以任何帮助都会非常感激。尽管付出了努力,我仍然在努力学习这门课程。 :(

无论如何,代码(我确定总是一团糟):

#include <stdio.h>

int main() {


FILE *fp;
char ch;
int lineCount, wordCount, charCount;

char filename[50], filename2[50];

lineCount = 0;
wordCount = 0;
charCount = 0;


printf("Enter a filename: ");

gets(filename);

    fp=fopen(filename, "r");

if(fp==NULL) {

printf("Error!\n");

return 1;

}

while((ch=fgetc(fp)) != EOF) {

putchar(ch);

}

fclose(fp);

printf("\n");

printf("Enter a second filename: ");

gets(filename2);

    fp=fopen(filename2, "r");

if(fp==NULL) {

printf("Error!\n");

return 1;

}

while((ch=fgetc(fp)) != EOF) {
   if ( fp )
   {
       while ((ch=getc(fp)) != EOF) {
        if (ch != ' ' && ch != '\n') { ++charCount; }
           if (ch == ' ' || ch == '\n') { ++wordCount; }
           if (ch == '\n') { ++lineCount; }
           }

       if (charCount > 0) {
        ++lineCount;
        ++wordCount;
       }
    }

    printf("Lines counted: %d \n", lineCount);
    printf("Words counted: %d \n", wordCount);
    printf("Characters counted: %d \n", charCount);

getchar();

putchar(ch);

}

fclose(fp);

printf("\n");

return 0;

}

1 个答案:

答案 0 :(得分:1)

你的第一个循环读取&amp;显示第一个文件,而不是尝试收集或报告任何统计信息;你的第二个循环读取,收集&amp;报告统计信息,但不会尝试显示。

我的建议是编写一个函数来为单个文件执行所有这些操作,然后为您希望如此处理的每个文件调用一次。