• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:str ! = NULL)

エラーが表示された:str !=NULL

このQ&Aのポイント
  • ファイル名もデレィクトリにあります。使っているソフトは、Visual studio 2010です。
  • プログラムを実行したところ、エラーが表示されました。エラーメッセージは「Line: 55 Expression : (str !=NULL)」です。
  • 教えてください。本当に些細なことでも大丈夫です。

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

Expression : (str !=NULL) で検索すると http://okwave.jp/qa/q459729.html 等が見つかります。 そう考えてプログラムを見ると if( (fp = fopen( "zahyou1.csv", "r")) == NULL ) { printf( "can not open the file.\n" ); } if( (out = fopen( "out.csv", "w")) == NULL ) { printf( "can not open the file.\n" ); } いずれも、fopenの戻り値がNULLかどうかのチェックはしていますが、NULLであるとき(=fopenに失敗したとき)にはメッセージを出力するだけで、そのまま実行を続けています。 このままでは、実際にfpやoutを使おうとしたときに、問題となります。 エラーの場合は、後の処理をしないような工夫をしましょう。(exitやreturnで終了させるなど) また、Visual Studioを使った場合の、よくある話なのですが。 fopen( "zahyou1.csv", "r") このようにファイル名だけ指定すると、カレントディレクトリにあるディレクトリから探します。 このあたりの詳細は、「作業ディレクトリ」「カレントディレクトリ」等で検索してください。 VisualStudioからデバッグ実行した場合は、プロパティの中にある「デバッグ時の実行ディレクトリ」になっています。 初期では、 bin\Debug やbin\Relase 等の、実行ファイルのあるディレクトリになっています。 ソースコード(~.c)と同じディレクトリに zahyou1.csv があっても、bin\Debug に無ければ fopenは成功しません。 ・ファイルの置き場所を変える ・作業ディレクトリをzahyou1.csvのあるディレクトリに指定する ・ファイル名だけではなく、ディレクトリの場所もフルパスまたは相対パスで指定する といった対策が必要です。

34ttta
質問者

お礼

ご丁寧な回答ありがとうございます。

関連するQ&A