• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:コンパイルエラーの原因がわからず困っています。)

コンパイルエラーの原因がわからず困っています。

このQ&Aのポイント
  • コンパイルエラーの原因がわからず困っています。プログラムをコンパイルする際に22行目で互換性のない型の代入が発生していることがエラーメッセージに表示されています。
  • このエラーは、22行目で行われている代入操作において、異なる型のデータを互換性のない方法で代入しようとしていることが原因です。
  • 解決策としては、22行目での代入操作の型の整合性を確認し、必要に応じて適切な修正を行う必要があります。具体的な修正方法はプログラムの詳細に依存しますが、適切なデータ型を使用することや、代入操作を適切な方法で行うことが考えられます。

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

  • ベストアンサー
  • ko_kinta
  • ベストアンサー率39% (43/109)
回答No.2

変数定義に char *pbuf; を追加して、22行目を 22 while((pbuf = fgets(str,1024,fp)) == EOF){ に変更してください。 strはバッファの配列割り当てなのでfgets()の戻り値を受け取ることは出来ません。 上記の修正でコンパイルは通ると思いますが、"== EOF" は "!= NULL" ではないのかなぁ。

その他の回答 (2)

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.3

> 22 while((str = fgets(str,1024,fp)) == EOF){ while(fgets(str,1024,fp) != NULL){ それから、fopen()の戻り値を必ず検査すべきです。 今のコードは、ファイルのオープンに失敗したときに 何も手を施していないため、問題があります。

  • don_go
  • ベストアンサー率31% (336/1059)
回答No.1

> 22 while((str = fgets(str,1024,fp)) == EOF){ fgets関数 http://homepage1.nifty.com/MADIA/vc/C/c_lang_ansi19.htm --------------------------------------------- #include <stdio.h> void main(void) {  char moji[100];  FILE *fp; //ファイルポインタ  if((fp=fopen("C:\\windows\\デスクトップ\\work.txt","r"))==NULL)   printf("ファイルを開けません。\n");  else  {   if ((int)fgets(moji,100,fp)!=EOF)     printf("文字列は\n%sです。\n",moji);    else     printf("ファイルの文字列取得失敗\n");     fclose(fp);  }  getchar(); } ---------------------------------------------

関連するQ&A