【解決方法】このプログラムが異なるファイルに対して同じ間違った出力を作成するのはなぜですか?

[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]

コメント

タイトルとURLをコピーしました