-4

これはコードです。何か問題があれば助けてください。

#include <iostream>

int main() {
    char ch = 'A';
    int num = ch;
    cout << "The ASCII code for " << ch << "is " << num << "\n";
    cout << "Adding 1 to the character code : \n";
    ch = ch + 1;
    num = ch;
    cout << "The ASCII code for " << ch << "is " << num << "\n";
    return (0);
}

次のようなエラーが発生します

ex1.cpp: In function ‘int main()’:
ex1.cpp:6:5: error: ‘cout’ was not declared in this scope
ex1.cpp:6:5: note: suggested alternative:
/usr/include/c++/4.6/iostream:62:18: note:   ‘std::cout’

みんな私の間違いを訂正してください。

4

4 に答える 4

3

std問題は、iostreamヘッダーがこれらのオブジェクトを提供しますが、名前空間の下でのみ提供されることです。修飾名の前に:を付けて使用しますstd::

std::cout << code;

グローバル名前空間にトークンが導入されるため、使用しないことをお勧めします。using namespace std代わりに名前空間プレフィックスを使用することをお勧めします。

于 2013-03-09T18:00:58.300 に答える
3

グローバルcoutオブジェクトはstd名前空間で定義されます(いくつかの例外を除いて、標準ライブラリのすべてのものとほとんど同じです)。

std::coutしたがって、名前を完全に修飾する(そして使用する)ことができます。

std::cout << "The ASCII code for " << ch << "is " << num << "\n";
// ...

または、 using宣言を導入します。

using std::cout;
cout << "The ASCII code for " << ch << "is " << num << "\n";
// ...

悪い、グローバルなusing宣言を避けてください:

using namespace std;

これにより、名前空間で定義されているすべてのシンボルstdがグローバル名前空間にインポートされるため、名前が衝突するリスクが高くなります。これは悪いプログラミング慣行であり、限られた状況でのみ使用する必要があります。

于 2013-03-09T18:02:31.497 に答える
0

名前空間を使用std::coutまたは追加します。stdこれをファイルの先頭に置きます。

using namespace std;
于 2013-03-09T18:00:30.043 に答える
-1

cout名前空間で定義されたストリームstdです。したがって、これを使用するときは、coutを最初に使用する前に、書き込みを行うstd::coutか、グローバルスコープに行が必要です。using std::cout

于 2013-03-09T18:02:45.147 に答える