• ベストアンサー

ファイル

c言語初心者です。 どなたか教えていただけませんか? これだとiが定義されないことになってしまいます。 #include<stdio.h> #include<stdlib.h> int main() { FILE *fp; fp=fopen("monai", "w"); if(fp==NULL){ fprintf(stderr,"ファイルのオープンに失敗しました。\n"); exit(0); } int i; for(i=1;i<=30;i++) { if(i<=9){ fprintf(fp," %d ",i); } else if(i%10==0) { fprintf(fp,"%d\n",i); } else { fprintf(fp,"%d ",i); } } fclose(fp); return 0; } ビルドもできません。

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

  • ベストアンサー
  • php504
  • ベストアンサー率42% (926/2160)
回答No.2

Cでは変数の宣言はブロックの先頭で行わないといけません。 #include<stdio.h> #include<stdlib.h> int main() { FILE *fp; fp=fopen("monai", "w"); if(fp==NULL){ fprintf(stderr,"ファイルのオープンに失敗しました。\n"); exit(0); } { int i; for(i=1;i<=30;i++) { if(i<=9){ fprintf(fp," %d ",i); } else if(i%10==0) { fprintf(fp,"%d\n",i); } else { fprintf(fp,"%d ",i); } } } fclose(fp); return 0; } のように{ }ではさんでもOKです

armpoint
質問者

お礼

ご丁寧にありがとうございます。 一応できました。iを宣言する位置がおかしかったのですね。

その他の回答 (1)

回答No.1

int i; の宣言場所を、 fp=fopen~~~の上に書いてみたら?

armpoint
質問者

お礼

ありがとうございます。やっとできました。 iの宣言場所がおかしかったのですね。

関連するQ&A