我剛剛開始學習C語言,並且正如話題所述,我必須編寫一個代碼來讀取另一個文本文件並計算「字符」,「單詞」和「句子」,直到達到EOF
。我目前的問題是我無法產生正確的輸出。C編程:計數來自另一個文本文件的字符,單詞和行的數量
例如包含以下內容的文本文件...
the world
is a great place.
lovely
and wonderful
應以39個字符,9個字和4句並不知我獲得50(字符數)1(字)1(句子)輸出
這是我的代碼:
#include <stdio.h>
int main()
{
int x;
char pos;
unsigned int long charcount, wordcount, linecount;
charcount = 0;
wordcount = 0;
linecount = 0;
while(pos=getc(stdin) != EOF)
{
if (pos != '\n' && pos != ' ')
{
charcount+=1;
}
if (pos == ' ' || pos == '\n')
{
wordcount +=1;
}
if (pos == '\n')
{
linecount +=1;
}
}
if (charcount>0)
{
wordcount+=1;
linecount+=1;
}
printf("%lu %lu %lu\n", charcount, wordcount, linecount);
return 0;
}
感謝任何形式的幫助或建議
隨着'炭POS; ... while(pos = getc(stdin)',最好用'int pos;'來區分'fgetc()'返回的257個不同的值 - 儘管我懷疑這是你當前的問題, – chux
你在哪裏打開文件? –
您可能想要編輯您的問題,以表明您希望用戶將示例文本輸入到stdin中,或從代碼中刪除stdin。 – jrh