私は検索しましたが、解決策が見つかりませんでした。 プログラムは、タブ、改行、およびスペースを数えます。K&Rエクササイズ1-8。私のコードを正しく動作させることができます
#include <stdio.h>
int main(void)
{
int c,nl,tab,blank;
tab = 0;
blank = 0;
nl = 0;
while((c = getchar()) != EOF)
{
if(c == '\n');
nl++;
if(c == '\t');
tab++;
if(c == ' ');
blank++;
}
printf("newline: %d tab: %d blank: %d\n", nl,tab,blank);
return 0;
}
私はEOFを通知するCTRL-Dを使ってFreeBSD上でこれを実行すると、すべての変数が同じ値で表示されます。私は18
として、それは18のように改行を表示 「タブがはあなたがCTRL-Dを入力を入力する方法をこんにちは空白」を18として、タブ、空白を入力すると、間違った私のコードですか?明らかにそれはありますが、何が間違っていますか?
は、あなたのif文の末尾から、セミコロンを取ります、例えば'if(c == '\ n');' - > 'if(c == '\ n')'となります。 (また、そのようなバグではなく、コードを適切にフォーマットする方法を学んでください。) –
ありがとう、私の間違いをformatingと。 @PaulR – clawhammer1234
gccまたはclangを使用している場合、 '-Wall'警告フラグを指定してコンパイルすると、この問題が検出されます。 –