main.cpp中,我不断收到错误消息,指出未定义print(以及其他类似错误)。

我在名为“misc”的头文件下定义了print()misc.h

#include <iostream>
#include <cstdlib>
#include <fstream>
#define MISC_H
#ifndef MISC_H

void print(string str) { cout << str << endl; }

string userIn(string prompt = "Option:") { //For collecting user responses
  string response;
  print(prompt);
  cin.clear();
  cin.sync();
  getline(cin, response);
  if (!cin) { response = "wtf"; }
  else if (response == "512") { //Secret termination code
    print("Program terminated");
    exit(0);
  }
  print("");
  return response;
}
#endif

然后在main.cpp I #include Headers/misc.h"中(头文件位于单独的文件夹中)

我在这里做错什么了吗?

最佳答案

在不知道您正在使用的编译命令的情况下,对我来说可见的是您的include guard不正确。

第一个命令#define MISC_H将使宏开始存在。

此后,当您调用#ifndef MISC_H时,它始终为false,因为您刚刚定义了它,所以效果是该文件的源始终被丢弃。

您需要翻转这些行,使其看起来像这样:

#ifndef MISC_H
#define MISC_H

关于c++ - C++找不到包含,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29089983/

10-13 01:01