在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/