2016-11-30 33 views
-1

我正在爲類進行分配,我們基本上必須提示用戶輸入兩個文本文件。程序應該讀取文件,顯示它們,並顯示單獨的文件統計信息。文本文件統計信息和顯示它們的問題

我一直在研究代碼,似乎碰到了一堵磚牆。我似乎只能顯示第二個文本文件的統​​計信息;此外,所述文件中的文本似乎沒有被顯示。

確實很困惑,所以任何幫助將非常感激。儘管我付出了努力,但我仍然在爲這個階級而努力。 :(

反正代碼(一團糟我相信):

#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'返回一個「int」,而不是「char」。並請以一致的方式格式化您的代碼。並考慮學習如何使用調試器。 –

回答

1

你的第一個循環讀取&顯示的第一個文件,而不是試圖自行收集或報告的統計數字;第二個循環讀取,收集&報告的統計數據,但並不試圖顯示。

我的建議是寫一個函數來做到這一切的單個文件,然後調用一次對於要這樣處理每個文件。

+0

謝謝。我會放棄它。然而,函數是我開始真正與這個模塊鬥爭的地方。直到那時我才明白我一直在學習什麼。將繼續嘗試。 再次感謝斯科特。 :) – sls1981

相關問題