Cout不是STD的成员

我正在练习使用多个文件和头文件等。我有一个项目,取两个数字,然后相加。很简单。

以下是我的文件:

main.cpp

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


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


writeAnswer(x + y);


return(0);
}

io.cpp

int readNumber()
{
int x;


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


return x;
}


void writeAnswer(int x)
{
std::cout << "Answer: ";
std::cout << x;
}

add.h

#ifndef ADD_H_INCLUDED
#define ADD_H_INCLUDED


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


#endif // #ifndef ADD_H_INCLUDED

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

enter image description here

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

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

385419 次浏览

#include <iostream>也添加到io.cpp的开头。

我有一个类似的问题,结果是我必须在cmake中添加一个额外的条目来包括文件。

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

如果你用微软的编译器(MSVC)使用预编译头文件,记住它必须是:

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

而不是反过来:

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

换句话说,预编译的头包含文件必须始终放在前面。(如果你忘记了,编译器会给你一个特别解释这一点的错误。)