C言語のコンパイルエラー:expected declaration or statement at end of inputの解決方法


このエラーメッセージが表示される一般的な原因は、以下のいずれかです:

  1. 関数や制御構造の中括弧 '}' の不足: コード内の関数や制御構造(if文やfor文など)の中括弧が正しく閉じられていない場合に発生します。これにより、コンパイラがコードの終了箇所を特定できず、エラーメッセージが表示されます。

  2. 関数の終了時のセミコロンの不足: 関数の最後にセミコロンがない場合に発生します。関数の宣言や定義の最後には常にセミコロンを付ける必要があります。

  3. ソースファイルの終了時の不足: ソースファイル全体が正しく終了していない場合に発生します。ソースファイルの最後には、全ての関数や制御構造の中括弧を閉じる必要があります。

このエラーを解決するためには、以下の方法を試してみてください:

  1. ソースコードを注意深く確認し、中括弧が正しく対応しているか確認します。開き中括弧 '{' と閉じ中括弧 '}' の数と位置が一致していることを確認してください。

  2. 関数の最後にセミコロンがあるか確認します。関数の宣言や定義の最後には、必ずセミコロンを付ける必要があります。

  3. ソースファイル全体が正しく終了しているか確認します。全ての関数や制御構造の中括弧が閉じられていることを確認してください。

以下に、いくつかのコード例を示します:

例1: 関数内の中括弧が不足している場合

#include<stdio.h>
void exampleFunction() {
    // 関数のコード
    if (condition) {
        // コードの処理
    }
// 中括弧が不足している
}
int main() {
    exampleFunction();
    return 0;
}

この場合、exampleFunction 関数の中括弧が不足しているため、エラーメッセージが表示されます。正しいコードでは、if 文の中括弧を閉じる必要があります。

例2: 関数の終了時のセミコロンが不足している場合

#include<stdio.h>
void exampleFunction() {
    // 関数のコード
}
int main() {
    exampleFunction() // セミコロンが不足している
    return 0;
}

この場合、exampleFunction 関数の呼び出しの後にセミコロンが不足しているため、エラーメッセージが表示されます。

例3: ソースファイルの終了時の不足

#include<stdio.h>
void exampleFunction() {
    // 関数のコード
}
int main() {
    exampleFunction();
    return 0;
}
// ソースファイルが正しく終了していない

この場合、ソースファイルの最後に中括弧が閉じられていないため、エラーメッセージが表示されます。ソースファイルの最後には、全ての関数や制御構造の中括弧を閉じる必要があります。