错误C2146:语法错误:缺少';'在标识符之前

时间:2010-02-12 12:23:49

标签: c++

我无法摆脱这些错误...我检查的地方到处都是分号... 代码很简单: 错误将我带到了article.h ...

中的“字符串名称”定义

的main.cpp

#include <iostream>
#include <fstream>
#include <vector>
#include <string>

using namespace std;

#include "article.h"

int main()
{
 string si;
 char article[128];
 vector<Article> articles;
 ifstream file;


 file.open("input.txt",ifstream::in);

 while(!file.eof())
 {
  file.getline(article,128);
  articles.push_back(Article(article));

 }

 file.close();

 while(1);
 return(1);
}

article.h:

#ifndef Article_H
#define Article_H

class Article
{
public:
 int year;
 string name;

 Article(char *i_name);
};

#endif

3 个答案:

答案 0 :(得分:12)

你应该添加:

#include <string>

到你的“article.h”头文件并声明名称,如下所示:

std::string name;

答案 1 :(得分:3)

似乎没有在article.h文件中定义string类型。尝试添加iostream并添加using namespace std(或写std::string而不是使用命名空间)

答案 2 :(得分:3)

您应该在标头中使用std :: namespace前缀,例如

std::string name;