1

ファイルを扱うのは久しぶりで、大まかなアイデアはわかりましたが、単純なアルゴリズムの実装に問題がありました。

たとえば、特定のファイルの文字数をカウントするコードを作成しようとしています。文字数。

これは私のコードです:

#include<stdio.h>
FILE *fp;
void main()
{
    int counter=0;
    fp=fopen("G:\hellostackoverflow.txt","r");
    while(fgetc(fp)!=EOF)
        counter++;
    printf("there are %d letters", counter);
}

実行すると、次のようなエラーが発生します。

デバッグ アサーションに失敗しました!

式(ストリーム!=NULL)

方法については...

なぜこれが起こり、どうすれば修正できますか?

4

1 に答える 1

4

プログラムが入力ファイルを読み取れないようです。この種の問題を検出するには、常に fopen の null をチェックする必要があります

fp=fopen("G:\hellostackoverflow.txt","r");
if(fp == NULL){
     printf("could not open file\n");
     return 1;
}

私の推測では、問題はパス名のバックスラッシュがエスケープされていないことです。エスケープする"G:\\hellostackoverflow.txt"か、バックスラッシュを必要としない別の場所にファイルを移動してみてください。

于 2014-07-07T05:37:26.137 に答える