質問: ファイルのオープンをするためのプログラムですがエラーが出てしまいます。一行目のincludeはそこで初めて定義したのにもかかわらず、既に定義されていると出てしまいます。ほかのプログラムを打っても同様のことが起こります。意味を調べてもいまいち理解できませんでした。かみ砕いて教えていただけないでしょうか。エラーは一番下に記載しておきます。 **ソースコード** ``` #include int main(void) { FILE *fp; fopen_s(&fp, "C_Gengo.txt", "w"); printf("ファイルをオープンし、ファイルポインタfpに情報を格納しました\n"); return 0; } ``` **エラーメッセージ** ``` LNK2005 main は既に Source.obj で定義されています。 ```
回答: エラーの意味は1つのプログラム(プロジェクト)中に `main()` という関数が複数個ある、ということです。で、エラーメッセージやソース内容や過去の質疑応答から妄想するに(妄想ですが確度は高そう) - Visual Studio 20xx を Windows 上で使っている - C / C++ コンソールアプリプロジェクトを新規作成している - あなたの書いたソースコードをそのプロジェクトに追加→新しい項目している と、書かれたようなエラーが発生します。 コンソールアプリプロジェクトを作るときに Visual Studio は `main()` を含むソースファイルを自動生成しています。それに更に追加→新しい項目→ C/C++ ソースして、その中にも `main()` を書くと `main()` が2個となりエラーになります。 対処法はいくつか考えられますが、一番手っ取り早そうなのは - Visual Studio が自動生成したソースファイルを変更する(新規追加しない) でしょう。後生大事にとっておくべき内容は書かれていませんので問題ないです。