[ad_1]
このプログラムは、特定のテキスト ファイル内の各アルファベットの繰り返し回数を表示することになっています。 しかし、ほとんどゼロのリストが表示されます。
#include <stdio.h> #include <stdlib.h> #include "Ctype.h" #define ABC 26 int main(int argc,char *argv[]) { FILE *fp; int i; char alfa[ABC],ch; if(fp=fopen(argv[1],"r")==NULL){ printf("The file %s cannot be opened",argv[1]); exit(1); } while((ch=fgetc(fp))!=EOF) if(toupper(ch)>=65&&toupper(ch)<=91) ++alfa[toupper(ch)-'A']; for(i=0;i<ABC;i++) printf("%c is repeated %d times\n",'a'+i,alfa[i]); fclose(fp); }
私が試したこと:
カウント ループの前に条件を追加して、問題が解決するかどうかを確認しました。 さまざまなテキスト ファイルも経験しましたが、常に同じ間違った結果が得られます。
解決策 1
引用:if(fp=fopen(argv[1],”r”)==NULL)
代わりにすべき
C
if ( (fp=fopen(argv[1],"r")) == NULL )
コードを適切にインデントしていれば、簡単に認識できたはずです。
[ad_2]
コメント