cout不是std的成员

Pau*_*non 178 c++ io cout std member

我正在练习使用多个文件和头文件等.所以我有这个项目需要两个数字,然后添加它们.很简单.

这是我的文件:

main.cpp中

#include <iostream>
#include "add.h"

int main()
{
    int x = readNumber();
    int y = readNumber();

    writeAnswer(x + y);

    return(0);
}
Run Code Online (Sandbox Code Playgroud)

io.cpp

int readNumber()
{
    int x;

    std::cout << "Number: ";
    std::cin >> x;

    return x;
}

void writeAnswer(int x)
{
    std::cout << "Answer: ";
    std::cout << x;
}
Run Code Online (Sandbox Code Playgroud)

add.h

#ifndef ADD_H_INCLUDED
#define ADD_H_INCLUDED

int readNumber();
void writeAnswer(int x);

#endif // #ifndef ADD_H_INCLUDED
Run Code Online (Sandbox Code Playgroud)

错误显示在io.cpp中.确切的错误是:

在此输入图像描述

有谁知道为什么会这样?谢谢.

编辑:我昨天用相同数量的文件(2 .cpp和1.h)做了一个小项目,我没有在另一个.cpp中包含iostream标题,它仍然编译并运行正常.

unk*_*ulu 289

添加#include <iostream>到一开始io.cpp.

  • 必须包括iostream(直接或间接).否则编译器将如何知道在哪里找到std :: cout. (5认同)
  • 它也必须包含在`stdafx.h`之后,而不是之前 (3认同)
  • 您可能已经间接包含了它。它始终是必需的。 (2认同)
  • 好的,谢谢你的回复,我会把它包括在内. (2认同)
  • 我还需要将它包含在.h文件中!! 谢谢 (2认同)

小智 12

还要记住它一定是:

#include "stdafx.h"
#include <iostream>
Run Code Online (Sandbox Code Playgroud)

而不是相反

#include <iostream>
#include "stdafx.h"
Run Code Online (Sandbox Code Playgroud)

  • `"stdafx.h"` 来自哪里?OP 不使用此类标头 (4认同)