我的程序返回错误,但我不知道为什么。 我怎么解决这个问题?
错误:
错误:无法绑定' 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;
}
答案 0 :(得分:2)
cout
不知道如何显示Personne
。您必须将内容(即age,nb_ami)直接放到输出中,或者为operator<<
提供ostream
和Personne
的重载。
答案 1 :(得分:1)
可怕的错误讯息。原因是这一行:
std::cout << tab[i] << std::endl;
您尚未告诉编译器如何将类型Personne
的对象流式传输到输出。您需要为您的类型定义合适的operator<<
。