【问题标题】:C++ error array and structC++ 错误数组和结构
【发布时间】:2014-06-12 06:53:31
【问题描述】:

我的程序返回和错误,我不知道为什么。 我该如何解决这个问题?

错误:

错误:无法将 'std::ostream {aka std::basic_ostream}' 左值绑定到 'std::basic_ostream&&'| 错误:初始化 'std::basic_ostream<_chart _traits>& std::operator&&, const _Tp&) 的参数 1 [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;
}

【问题讨论】:

  • 提供发生此错误的行号真的很有帮助。
  • 不应该是Entrez le nom du fichier吗?

标签: c++


【解决方案1】:

cout 不知道如何显示Personne。您必须将内容(即年龄、nb_ami)直接放到输出中,或者为 operator&lt;&lt; 提供一个重载,该重载采用 ostreamPersonne

【讨论】:

    【解决方案2】:

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

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

    您还没有告诉编译器如何将Personne 类型的对象流式传输到输出。你需要为你的类型定义一个合适的operator&lt;&lt;

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    相关资源
    最近更新 更多