Dlaczego nie chce wypisac zawartosci stosu

0

Witam! jak w temacie.

#include <iostream>
#include <math.h>
#include <vector>
#include <stack>
using namespace std;
int main()
{
	int ile;
	struct student {
		char imie[20];
		char nazwisko[20];
		int wiek;
	};
	stack <student> osoba;
	student a;
	cout << "ile studentow chcesz dodac? " << endl;
	cin >> ile;
	for (int i = 0; i < ile; i++) {
		cin >> a.imie >> a.nazwisko >> a.wiek;
		osoba.push(a);
	}
	while (!osoba.empty()) {
		// w tym coucie jest blad, nie chce mi wypisac 3ech gornych elementow stosu
		cout <<osoba.top();
		osoba.pop();
	}
	system("pause");
	return 0;
}
3

Tym nie wypiszesz górnej osoby:

cout <<osoba.top();

Dlatego że to zwraca strukturę.
Musisz zrobić coś takiego (czyli odwołać się do pól tej struktury)

cout << osoba.top().imie << osoba.top().nazwisko << osoba.top().wiek << endl;

albo

student person = osoba.top();
cout << person.imie << person.nazwisko << person.wiek << endl;

1 użytkowników online, w tym zalogowanych: 0, gości: 1