プロが教える店舗&オフィスのセキュリティ対策術

最近Cを始めたばかりです。
コンパイルできなくて困ってます、意味がわかりません、
誰か教えてください。

#include <stdio.h>
#include <process.h>
{
FILE *fp;
int c;
if ((fp=fopen("d:abc.txt","w"))==NULL){
printf("Can't open File\n");
exit(1);
}
while ((c=getchar())!=EOF)
putc(c,fp);
fclose(fp);
}
これをコンパイルしたら、
'{' : 対応する関数ヘッダーがありません (旧形式の仮引数リスト?)
などと言うエラーメッセージがでます、どうすればいいのか教えてください、なにぶん始めたばかりなので、わかり易くお願いします。

A 回答 (5件)

まず、単純に考えて、一番最初にmain関数の宣言がありません。


「void main(void)」
の1行を加えましょう。コンパイルは通ります。
    • good
    • 1
この回答へのお礼

初歩的ミスでした、きをつけます。
ありがとうございました。

お礼日時:2007/09/16 11:50

あっ、mainが抜けてましたね。

失礼しました。
'{' : 対応する関数ヘッダーがありません (旧形式の仮引数リスト?)
はエラーメッセージそのものですね。申し訳ない。
VisualStudioC++では、このエラーが出たら関数定義の最初で関数名の書き方など定義が間違っているという意味になります。
それとexit()関数があるので<process.h>は必要でした。これも訂正します。
今日は、俺ダメかも^^;
    • good
    • 0
この回答へのお礼

ありがとうございました、初歩的ミスでした。

お礼日時:2007/09/16 11:36

何度もすみません。

#1です。

こっちの方がいいんじゃないでしょうか?
#include <stdio.h>
#include <stdlib.h>

void main(void){
FILE *fp;
int c;
if ((fp=fopen("d:abc.txt","w"))==NULL){
printf("Can't open File\n");
exit(1);
}
while ((c=getchar())!=EOF){
putc(c,fp);
}
fclose(fp);
}
    • good
    • 0
この回答へのお礼

ご丁寧に回答いただき、ありがとうございました。

お礼日時:2007/09/16 11:41

#1です。


途中で、「exit(1);」があるので訂正します。
× void main(void)
○ int main(void)
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2007/09/16 11:42

質問する場合は、必ず使用する環境やコンパイラの種類を書き込んでください。

それとエラーメッセージそのものも貼り付けてください。初心者が自分なりの解釈でエラーの内容を説明すると重要な情報が抜けている場合があります。
あなたにとって当たり前のものでも、LinuxなのかWindowsなのかその人にとっての当たり前が違います。

ソースを見る限りは、勘ですが
#include <process.h>
がエラーしている気がします。
これがエラーだとしたら、コンパイラはVisualStudioじゃないのかも知れませんという予想はできますが。情報不足でなんともいえません。
ただ言えるのは<process.h>は、このソースコードなら不要なincludeだと思いますが。
    • good
    • 0
この回答へのお礼

ありがとうございました、そう言うことも大事なんですね、
始めたばかりでよくわかりませんでした、
これからわできるだけ詳しく書くようにします。

お礼日時:2007/09/16 11:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!