C ++:我的程序不会编译,我不知道为什么。我想我错过了一个图书馆......?简单回答

时间:2013-04-16 09:19:44

标签: c++ class structure

这不是家庭作业。我正在审查我的新编码类的基本C ++知识,我正在弄乱他在其中一个幻灯片中给出的结构示例。 以下是我的代码:

#include <iostream>
using namespace std;

struct PERSON
{
    string name;
    int age;
};

PERSON get_person(void)
{
    PERSON temp;
    cin >> temp.name;
    cin >>temp.age;
    return(temp);
}

int main(void)
{
    PERSON me;
    me= get_person();
    cout<<me.name;
    cin.get();
}

//无法识别“&gt;&gt;”和“&lt;&lt;”并不会编译。我认为这是因为我使用的是结构,并且在我的代码开头没有包含某些内容。  有什么想法吗?

2 个答案:

答案 0 :(得分:2)

string不是C ++中的原始类型。 string是一个类,您在代码中创建类string的对象。 stringstd::string)类在C ++ STL(标准模板库)中实现。

Here是官方C ++标准库文档。您可以在C ++标准库,函数,类等中找到有关标题的信息。我建议不要访问cplusplus.com,因为它在某些地方有错误的文档。

此外,here是指向C ++标准库中所有可用标头的快速链接,并简要说明了每个标头。

编辑:

要回答实际问题(我在评论中所做的):在#include <string>之后放置#include <iostream>

答案 1 :(得分:0)

您必须包含以下声明

  #include <string>