当前位置:C++技术网 > 精选软件 > C++ Primer Plus 6th 2.6 复习题 第11题 cout是一个未知标识符的原因

C++ Primer Plus 6th 2.6 复习题 第11题 cout是一个未知标识符的原因

更新时间:2019-02-15 11:29:48浏览次数:1+次

C++Primer Plus 6th 2.6复习题解答 第11题
题目:
11.假设您编写的main()函数包含如下代码:
cout<<"Please enter you PIN: ";
而编译器指出cout是一个未知标识符。导致这种问题的原因很可能是什么?指出3种修复这种问题的办法。

答案:书上无答案。
    
C++技术网辅导详解解答:

    这一题是非常有实践性的题目。没有动手写代码,只看了书的,这一题是很难答出来的,当然如果你逐一的比对语法顺序,看看哪一部分漏掉了,还是可能找出问题的。但是没有在电脑上写代码运行,你也不知道正确答案哦。只有你在电脑上弄出来这个问题即“编译器指出cout是一个未知标识符。”然后解决了,不再报这个问题,才算是真正解决了。所以,还犹豫什么,动手吧。
    所谓的未知标识符,就是说这个名称被定义过但是没有被引用头文件或者虽然引用了但是命名空间没有指定或者引用的不对。
    根据这三点,我们来一一解决。在找程序bug的时候,最重要的是要找到根本问题,分析问题的来龙去脉,然后才能够准确的定位问题,从根本上解决问题。找到问题是一项非常考验人的一关,需要掌握大量的经验和知识,而解决问题很多时候却很简单。对于复杂的问题,则可能需要一些脑洞,但是相对来说是非常少的,按照常规思路就可以解决绝大多数问题。而找问题却是实实在在的大难题,谁也不可避免。
解决办法1:这个名称被定义过但是没有被引用头文件-->引用头文件
    cout是标准命名空间的名字,所以自然是被定义过的。如果定义过的东西,你不使用,那直接用,还不就相当于没有定义嘛。而引用标准命名的定义,我们需要引用头文件。而cout、cin等的命名都是通过引入头文件iostream来实现的。所以我们需要包含iostream。语法如下:
#include <iostream>//原先缺失,新增,引用头文件
using namespace std;
cout<<"Please enter you PIN: ";
解决办法2:虽然引用了但是命名空间没有指定-->使用命名空间
#include <iostream>
using namespace std;//原先缺失,新增,使用命名空间
cout<<"Please enter you PIN: ";
解决办法3:没有引用命名空间,可以引用单个名字
#include <iostream>
using std::cout;//使用单个名字
cout<<"Please enter you PIN: ";
解决办法4:如果没有使用命名空间,可以直接用命名空间的名字
#include <iostream>
std::cout<<"Please enter you PIN: ";//新增std::,直接使用命名空间的名字