質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Visual C++

Microsoft Visual C++はWindowsのCとC++の統合開発環境(IDE)であり、コンパイラやデバッガを含んでいます。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Q&A

解決済

3回答

3318閲覧

全てのコードでエラーC2447が出る

退会済みユーザー

退会済みユーザー

総合スコア0

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Visual C++

Microsoft Visual C++はWindowsのCとC++の統合開発環境(IDE)であり、コンパイラやデバッガを含んでいます。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

0グッド

1クリップ

投稿2021/07/14 08:53

編集2021/07/14 09:53

C言語 エラーコードC2447 奇数偶数を判別したい

Visual StudioでエラーコードC2447
'{' : 対応する関数ヘッダーがありません (旧形式の仮引数リスト?)
と表示されてしまいます。3行目の{にエラーが発生しているらしいです。
教科書を参考に書いたのですが、どこが間違っているのかが分かりません。
最初は下記のコードだけだと思っていたのですが、今まで書いた(hello worldを表示するだけの)コードや、int main(void){return};の1行だけでも同じエラーが出ます。

発生している問題・エラーメッセージ

C2447 '{' : 対応する関数ヘッダーがありません (旧形式の仮引数リスト?)

該当のソースコード

C言語

1#include <stdio.h> 2 3int main(void) 4{ 5 int res; 6 7 printf("整数を入力してください。\n"); 8 (void)scanf("%d", &res); 9 10 if (res % 2 == 0) { 11 printf("%d は偶数です\n", res); 12 }else { 13 printf("%d は奇数です\n", res); 14 } 15 16 return 0; 17} 18

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jimbe

2021/07/14 09:01

その教科書はどのようなC処理系用となっているのでしょうか。 教科書の想定している処理系では int main(void) という書き方は OK ですが、お使いの VisualStudio では NG だということかと思います。
退会済みユーザー

退会済みユーザー

2021/07/14 09:11

すいません、分かりません もう少し調べてみます
episteme

2021/07/14 11:46

...んでもってそそくさと退会かよ。何考えてんだ。
guest

回答3

0

ベストアンサー

すいません全て勘違いでした。
別のコードのエラーを今書いてる場所のものだと勘違いしていました。

投稿2021/07/14 09:54

編集2021/07/14 10:12
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

BeatStar

2021/07/14 10:06

勘違いなら勘違いで『どういう勘違いだったか』や『どのように解決したか』とかを書きましょう。 こういう場所は質問者だけの場ではなく、『似たような問題にぶつかった人が検索』したりもします。
退会済みユーザー

退会済みユーザー

2021/07/14 10:14

追加で書きました。
fana

2021/07/14 10:15

「こやつめ,ハハハ」という感じっすね.
退会済みユーザー

退会済みユーザー

2021/07/14 10:18

時間を使わせてしまって本当にすいません 1行のみを入力してみろと言われて気づくことが出来ました。ありがとうございました。
thkana

2021/07/14 11:48

コンパイルしているソースと編集しているソースが違っていた、ということかしら。 真面目に、時々ありますね。自分でも経験ありますし、Q&A掲示板でもソース上間違いがないのにエラーになる場合は「本当にそのファイルをコンパイルしていますか?」という確認は結構有効だったりします。確認のために、わざとソースの先頭にエラーを埋め込んでちゃんとコンパイルエラーになるかを見てもらったり。 質問者さんは「恥ずかしい間違い」と思っちゃったのかも知れませんが、私に言わせれば単なる「あるある」です。
BeatStar

2021/07/14 11:53

ですね。私もありますし。
fana

2021/07/15 01:36 編集

私はうっかり者なので, 複数のドキュメントをタブで開くタイプのエディタを使ってると,違う方をいじくってしまったりとか,結構しくじる. (コピペ的なことが生じて一時的に見た目が似通った場合とか) そのようなミスによって「私はこのコンパイラのバグを見つけた!」とか毎回言い出すのもまずいので, 複数種類のテキストエディタを導入して,その中の1つを「閲覧専用」に使うようにしている. 「ソースコードを "見るだけ" のときはこれを使う」みたいな. (アプリケーションの見た目で取り違えを防ぐという…)
guest

0

なにひとつ間違っていませんし、件のエラーも再現しません。
Visual Studio 2019 で何の問題もなくコンパイル/実行できました。

投稿2021/07/14 09:05

編集2021/07/14 09:10
episteme

総合スコア16614

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/07/14 09:07

回答ありがとうございます。 なぜなのでしょうか…
episteme

2021/07/14 09:09

あなたのコンパイル/実行環境がわからない以上「僕とこでは再現しません」としか答えられません。
退会済みユーザー

退会済みユーザー

2021/07/14 09:14

Visual Studio Community 2019というものを使っています
episteme

2021/07/14 09:16 編集

僕と同じですね...だったらなおさら"わかりません" コマンドプロンプトから cl xxx.c しても同じ症状ですか?
退会済みユーザー

退会済みユーザー

2021/07/14 09:24

ソースファイルが開けませんと表示されます
episteme

2021/07/14 11:29

まさかそのまんま xxx.c ってタイプしたんじゃなかろうね?
guest

0

提示コードを見る限り特に問題は無いように見え,
また,そのコードをコピペしてもそのようなエラーは起きませんでした.
本当に提示コードが問題のコードそのものなのでしょうか?

例えば,

int main(void); //←ここにうっかりセミコロンが! { ...

とかすれば,そのエラーが出ますが……

投稿2021/07/14 09:01

編集2021/07/14 09:02
fana

総合スコア11658

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fana

2021/07/14 09:04

コピペして試した環境は, Visutal Studio 2017 で C++ のコンソールアプリケーションです.
退会済みユーザー

退会済みユーザー

2021/07/14 09:06

はい、私が書いたものをコピペして質問しました。
fana

2021/07/14 09:23

うーん, 実はこの stdio.h の中身が異常!(うっかり書き換えちゃったたとか,あるいは実はそういう名前の自作ヘッダがあるとか) …みたいなことは無いのですよね?
退会済みユーザー

退会済みユーザー

2021/07/14 09:25

あるかもしれません
fana

2021/07/14 09:29

Visual Studio 使っているならソースファイルの #include <stdio.h> のとこで右クリックすれば,ポップアップメニューに 「ドキュメント <stdio.h> を開く」 というのが出てきて,開くことができます. それでとりあえず, > 実はそういう名前の自作ヘッダがあるとか という話になっていなかを確認することができるかと. (本物ならば, Microsoft が作りました的な注釈が書かれている stdio.h が開くハズ)
退会済みユーザー

退会済みユーザー

2021/07/14 09:31

ありがとうございます。特に問題は無さそうでした
fana

2021/07/14 09:33

本物だった場合,(そうそう無いと思うけども) > うっかり書き換えちゃった という可能性は無いかなぁ. 開いたstdio.hのタブ上にマウスカーソルを置くとポップアップでそのファイルのパスが表示される. またそこで右クリすれば「パスをコピー」的なメニューもあるかと思う. そこで stdio.h のありかがわかるから,エクスプローラでそのフォルダを見たら,stdio.h だけがタイムスタンプが他のファイルと比較して新しくなってないか? とかから,判断できるかな?
fana

2021/07/14 09:35

あー,あとは一旦ソースの中身を int main(void){ return 0; } だけにしたら(#include <stdio.h> も無しで),件のエラーは出なくなるのか? とか.
退会済みユーザー

退会済みユーザー

2021/07/14 09:37

それも問題はありませんでした。
退会済みユーザー

退会済みユーザー

2021/07/14 09:38

エラーが増えました。
fana

2021/07/14 09:41

> エラーが増えました。 ソースを↑の1行だけにしたらエラーが増えたってことですか? そうであれば,その話を(出てきたエラーメッセージを含めて)質問文に追記できませんか? (私にはさっぱりわからないけども,情報を明示すれば誰かがわかるかもしれないので)
退会済みユーザー

退会済みユーザー

2021/07/14 09:44

すいません勘違いしていました。 同じエラーが出ます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問