C ++错误数组和结构

时间:2014-04-26 14:11:41

标签: c++

我的程序返回错误,但我不知道为什么。 我怎么解决这个问题?

错误:

错误:无法绑定' std :: ostream {aka std :: basic_ostream}' lvalue to' std :: basic_ostream&&' | 错误:初始化' std :: basic_ostream< _CharT,_Traits>&的参数1 std :: operator<<(std :: basic_ostream< _CharT,_Traits>&&,const _Tp&)[with _CharT = char; _Traits = std :: char_traits; _Tp = Personne]' |

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

struct Personne { int age; int nb_ami; };

int main()
{
    std::cout << "Entrer le nom du fichier: " << std::endl;
    std::string fileUser{};
    std::cin >> fileUser;
    std::ofstream(fileUser.c_str());
    std::cout << "Quel age avez-vous ?" << std::endl;
    std::vector<Personne> tab(1);
    std::cin >> tab[0].age;
    for (unsigned int i{}; i < tab.size(); i++){
        std::cout << tab[i] << std::endl;
    }
    return 0;
}

2 个答案:

答案 0 :(得分:2)

cout不知道如何显示Personne。您必须将内容(即age,nb_ami)直接放到输出中,或者为operator<<提供ostreamPersonne的重载。

答案 1 :(得分:1)

可怕的错误讯息。原因是这一行:

std::cout << tab[i] << std::endl;

您尚未告诉编译器如何将类型Personne的对象流式传输到输出。您需要为您的类型定义合适的operator<<