头文件将不会编译到我的主测试程序中。为什么会这样呢?我在线上看过,但没有找到为什么会这样的简单原因。我已经尝试了几个#ifndef
和#define
,但仍然不确定为什么该文件不包含在我的测试程序中。
下面是尝试编译测试程序时收到的错误消息。这与头文件有关,但我不确定如何解决此简单问题。奇怪的是,我以前使用过C ++,并且不记得在头文件中遇到了这种麻烦。
错误:
错误1错误C2015:常量c:\ users \ itpr13266 \ desktop \ c ++ \ testproject \ testproject \ testproject.cpp中的字符太多10 1 TestProject
错误2错误C2006:'#include':期望的文件名,找到'常量'c:\ users \ itpr13266 \ desktop \ c ++ \ testproject \ testproject \ testproject.cpp 10 1 TestProject
错误3错误C1083:无法打开包含文件:'':没有这样的文件或目录c:\ users \ itpr13266 \ desktop \ c ++ \ testproject \ testproject \ testproject.cpp 10 1 TestProject
码
#include "stdafx.h"
#include "iostream"
#include <iostream>
#include <fstream>
#include <math.h>
#include <iostream>
#ifndef MYDATESTRUCTURES_H
#define MYDATESTRUCTURES_H
#include'myDataStructures.h' <-- name of my include file
#endif
using namespace std;
#define MY_NAME "Alex"
void f(int);
void DoSome(int, char);
enum color { red, green, blue };
enum color2 { r, g=5, b };
class CVector {
public:
int x,y;
CVector () {}
CVector (int a, int b) : x(a), y(b) {}
void printVector()
{
std::cout << "X--> " << x << std::endl;
std::cout << "Y--> " << y << std::endl;
}
};
CVector operator+ (const CVector& lhs, const CVector& rhs) {
CVector temp;
temp.x = lhs.x + rhs.x;
temp.y = lhs.y + rhs.y;
return temp;
}
template<typename T>
void f(T s)
{
std::cout << s << '\n';
}
template<typename P, typename N>
void DoSome(P a, N b)
{
std::cout << "P--> " << a << '\n';
std::cout << "N--> " << b << '\n';
}
void testMath()
{
int result = ceil(2.3) - cos(.2) + sin(8.0) + abs(3.44);
cos(4.1);
}
void testStorageTypes()
{
int a;
register int b;
extern int c;
static int y;
}
color temp = blue;
color2 temp2 = r;
int _tmain(int argc, _TCHAR* argv[])
{
std::getchar();
return 0;
}
代码(头文件)
#include <iostream>
int myAdd1(int, int);
int myAdd2(int, int, int, int, int);
struct myFirst1
{
}
struct myFirst2
{
}
int myAdd1(int x, int y)
{
return x + y;
}
int myAdd2(int x, int y, int z, int m, int y)
{
return x + y;
}
最佳答案
这行无效:
#include'myDataStructures.h' <-- name of my include file
在C / C ++中,单引号用于引用字符文字,而不是字符串文字。您需要使用双引号:
#include "myDataStructures.h"
错误消息的帮助程度稍差,因为实际上可能有一个multi-character constant, but its value is implementation-defined,使得它们的使用不是很方便,因此很少见。
关于c++ - 为什么我的#include文件无法编译?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22644884/