1. ホーム
  2. C++

[エラー]'cout' はこのスコープで宣言されていません。

2022-02-17 02:05:33

コンパイラの環境です。Dev-C++ 5.11

OS:Windows 10 Professional

#include <iostream>
#include <string>

int main(){
    cout << "Please input your first name: ";
    string user_name;
    cin >> user_name;
    cout << '\n'
         << "hello,"
         << user_name
         << "... and goodbye!\n";
    return 0;
}

これはEssential C++で書かれたコードですが、書いている途中でうまくいかなくなり、エラーを促しました。

[Error]'cout' はこのスコープで宣言されていません。

[エラー] 'string' はこのスコープで宣言されていません。

原因
C++ 1998 では、cout と endl は 'std::cout' と 'std::endl' の形式を使うか、名前空間 std を使って呼び出すことが要求されています。

変更後のコード

#include <iostream>
#include <string>
using namespace std;
int main(){
    cout << "Please input your first name: ";
    string user_name;
    cin >> user_name;
    cout << '\n'
         << "hello,"
         << user_name
         << "... and goodbye!\n";
    return 0;
}

コンパイルしてパスするように修正。 

追記:このエラーはコードを読みながらタップしたからで、本で紹介されているフルコードはstdが追加されているものです。