2016-11-30 4 views
-1

私はクラスの課題を取り組んでおり、基本的には2つのテキストファイルを入力するようユーザーに求めなければなりません。プログラムはファイルを読み込んで表示し、別のファイルの統計情報を表示する必要があります。テキストファイルの統計情報とそれらを表示する問題

私はコードに取り組んでおり、レンガの壁に当たったようです。私は2番目のテキストファイルの統計を表示するようにしか見えません。さらに、前記ファイルからのテキストは表示されないように見える。

非常に混乱していますので、どんな助けでも大変感謝しています。私の努力にもかかわらず、このクラスではまだ本当に苦労しています。とにかく:(

、コード(私は確信している合計混乱):

#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; 

} 
+0

'fgetc' 'char'ではなく' int'を返します。また、コードを一貫した方法でフォーマットしてください。そして、デバッガの使い方を学ぶことを検討してください。 –

答えて

1

あなたの最初のループは、任意の統計情報を収集したり、報告するかしようとしていない、&ディスプレイ最初のファイルを読み込み、2番目のループは読み込み、&レポートの統計情報を収集しますが、表示しようとしません。

私の提案は、単一のファイルに対して、このすべてを行うための関数を記述した後、あなたがこのように処理たいファイルごとに一回それを呼び出すことであろう。

+0

ありがとうございます。私はそれを行こう。しかし、関数は、私がこのモジュールで本当に苦労し始めたところです。それまで私は何を学んでいたのか理解していました。しかし、試し続けます。 もう一度Scottに感謝します。 :) – sls1981

関連する問題