C++ cout不是std的成员
我正在练习使用多个文件和头文件等,所以我有这个项目,需要两个数字,然后将它们相加。很简单 这是我的档案: main.cppC++ 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;
#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"