- ベストアンサー
ファイル
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; } ビルドもできません。
- みんなの回答 (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です
その他の回答 (1)
- sonata1229
- ベストアンサー率36% (76/206)
int i; の宣言場所を、 fp=fopen~~~の上に書いてみたら?
お礼
ありがとうございます。やっとできました。 iの宣言場所がおかしかったのですね。
お礼
ご丁寧にありがとうございます。 一応できました。iを宣言する位置がおかしかったのですね。