C++ cout不是std的成员

C++ cout不是std的成员,c++,io,std,member,cout,C++,Io,Std,Member,Cout,我正在练习使用多个文件和头文件等,所以我有这个项目,需要两个数字,然后将它们相加。很简单 这是我的档案: main.cpp #include <iostream> #include "add.h" int main() { int x = readNumber(); int y = readNumber(); writeAnswer(x + y); return(0); } int readNumber() { int x;

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

这是我的档案:

main.cpp

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

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

    writeAnswer(x + y);

    return(0);
}
int readNumber()
{
    int x;

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

    return x;
}

void writeAnswer(int x)
{
    std::cout << "Answer: ";
    std::cout << x;
}
错误显示在io.cpp中。准确的误差是:

有人知道为什么会这样吗?谢谢


编辑:我昨天做了一个小项目,文件量相同(2.cpp和1.h)我没有在另一个.cpp中包含iostream头,它仍然编译并运行良好。

#include
添加到
io.cpp
的开头。

我也遇到了类似的问题,结果是我不得不在
cmake
中添加一个额外的条目来包含这些文件


因为我也在使用zmq库,所以我也必须将它添加到包含的库中。

还要记住,它必须是:

#include "stdafx.h"
#include <iostream>
#包括“stdafx.h”
#包括
而不是相反

#include <iostream>
#include "stdafx.h"
#包括
#包括“stdafx.h”

iostream必须包括在内(直接或间接)。否则编译器怎么知道在哪里找到std::cout呢?我明白你的意思。谢谢但我是如何得到我的另一个项目的。不在另一个.cpp中也包含它的情况下工作?我在底部更新了OP。你可能间接地包含了它。它总是必需的。我还需要将它包含在一个.h文件中!!谢谢,所以它必须包含在
stdafx.h
之后,而不是在编辑之前:然后您以不同的方式编译了该项目。在您的第二个cpp文件中包含iostream是必需的,因为这里有它。也许您上次在
.h
文件中包含了这些内容。是的,它现在工作得很好,谢谢大家的快速响应!:)始终在本地文件之后包含系统头文件。
“stdafx.h”
来自哪里?OP没有使用这样的标题。我也有同样的错误,我试着交换他们的位置以确定。
#include <iostream>
#include "stdafx.h"