Simple C ++程序中的错误

时间:2013-03-09 17:58:33

标签: c++ ubuntu-12.04

这是代码,如果出现任何问题,请帮助我。

#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 个答案:

答案 0 :(得分:3)

问题是iostream标头为您提供了这些对象,但仅在std命名空间下。使用限定名称,在其前面添加std::

std::cout << code;

通常建议您使用using namespace std,因为它会将令牌引入全局命名空间。最好使用命名空间前缀作为替代方法。

答案 1 :(得分:3)

全局cout对象在std命名空间中定义(非常类似于标准库中的所有内容,只有少数例外)。

因此,您可以完全限定名称(并使用std::cout):

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

或者引入使用声明

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

避免错误,全局使用声明:

using namespace std;

std命名空间中定义的所有符号导入全局命名空间,从而导致名称冲突的高风险。这是糟糕的编程习惯,只能在有限的情况下使用。

答案 2 :(得分:0)

使用std::cout或添加std命名空间。把它放在文件的顶部:

using namespace std;

答案 3 :(得分:-1)

cout是名称空间std中定义的流。因此,当您使用它时,您必须在第一次使用cout之前编写std::cout或者在全局范围内需要一行using std::cout