cout 不是 std 的成员

新手上路,请多包涵

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

这是我的文件:

主文件

#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;
}

添加.h

 #ifndef ADD_H_INCLUDED
#define ADD_H_INCLUDED

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

#endif // #ifndef ADD_H_INCLUDED

该错误出现在 io.cpp 中。确切的错误是:

在此处输入图像描述

有谁知道为什么会发生这种情况?谢谢。

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

原文由 Paul Hannon 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 933
2 个回答

也将 #include <iostream> io.cpp 开头。

原文由 unkulunkulu 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果您在 Microsoft 的编译器 (MSVC) 中使用预编译头文件,请记住它必须是:

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

而不是相反:

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

换句话说,预编译的头包含文件必须始终排在第一位。 (如果您忘记了,编译器应该会给您一个错误,专门解释这一点。)

原文由 Jukes 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题