こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

対応する関数ヘッダーがありません

最近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);
}
これをコンパイルしたら、
'{' : 対応する関数ヘッダーがありません (旧形式の仮引数リスト?)
などと言うエラーメッセージがでます、どうすればいいのか教えてください、なにぶん始めたばかりなので、わかり易くお願いします。

投稿日時 - 2007-09-16 10:27:12

QNo.3349236

困ってます

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

まず、単純に考えて、一番最初にmain関数の宣言がありません。
「void main(void)」
の1行を加えましょう。コンパイルは通ります。

投稿日時 - 2007-09-16 10:31:43

お礼

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

投稿日時 - 2007-09-16 11:50:21

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(5)

ANo.5

zwi

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

投稿日時 - 2007-09-16 11:23:32

お礼

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

投稿日時 - 2007-09-16 11:36:24

ANo.4

何度もすみません。#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);
}

投稿日時 - 2007-09-16 11:13:13

お礼

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

投稿日時 - 2007-09-16 11:41:44

ANo.3

#1です。
途中で、「exit(1);」があるので訂正します。
× void main(void)
○ int main(void)

投稿日時 - 2007-09-16 11:04:31

お礼

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

投稿日時 - 2007-09-16 11:42:53

ANo.2

zwi

質問する場合は、必ず使用する環境やコンパイラの種類を書き込んでください。それとエラーメッセージそのものも貼り付けてください。初心者が自分なりの解釈でエラーの内容を説明すると重要な情報が抜けている場合があります。
あなたにとって当たり前のものでも、LinuxなのかWindowsなのかその人にとっての当たり前が違います。

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

投稿日時 - 2007-09-16 10:41:11

お礼

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

投稿日時 - 2007-09-16 11:48:28