Como exibir uma struct

Pessoal, tenho um pequeno projeto onde faço o cadastro dos dados de um carro em uma struct. Eu consigo cadastrar tranquilamente mas não consigo exibir os dados após o cadastro. Abaixo segue o código do projeto:

main.cpp

#include <iostream>
#include "estrutura.h"

using namespace std;

int main(){
	struct carro c;
	Cadastro cadastro;
	while(true){
        string com;
        cout << ">> ";
        cin >> com;
        if(com == "cadastrar"){
            string nome;
            string cor;
            string placa;
            int ano;
            int portas;
            cout << "Nome do carro: ";
            cin >> nome;
            cout << "Cor do carro: ";
            cin >> cor;
            cout << "Placa do carro: ";
            cin >> placa;
            cout << "Ano do carro: ";
            cin >> ano;
            cout << "Portas do carro: ";
            cin >> portas;
            cadastro.set_nome(nome);
            cadastro.set_cor(cor);
            cadastro.set_placa(placa);
            cadastro.set_ano(ano);
            cadastro.set_portas(portas);
        }else if(com == "exibir"){
            cadastro.exibir(&c);
        }else if(com == "sair"){
            return 0;
        }else{
            cout << "Erro!" << endl;
        }
	}
	return 0;
}

estrutura.h

#ifndef ESTRUTURA_H
#define ESTRUTURA_H

using namespace std;

struct carro{
	string nome;
	string cor;
	string placa;
	int ano;
	int portas;
};

class Cadastro{
	private:
		string nome;
		string cor;
		string placa;
		int ano;
		int portas;
	public:
		void set_nome(string nome);
		void set_cor(string cor);
		void set_placa(string placa);
		void set_ano(int ano);
		void set_portas(int portas);
		void cadastrar(struct carro *c);
		void exibir(struct carro *c);
		string get_nome();
		string get_cor();
		string get_placa();
		int get_ano();
		int get_portas();
};

#endif

estrutura.cpp

#include <iostream>
#include "estrutura.h"

using namespace std;

string nome;
string cor;
string placa;
int ano;
int portas;

void Cadastro::set_nome(string nome){
	this->nome = nome;
}

void Cadastro::set_cor(string cor){
	this->cor = cor;
}

void Cadastro::set_placa(string placa){
	this->placa = placa;
}

void Cadastro::set_ano(int ano){
	this->ano = ano;
}

void Cadastro::set_portas(int portas){
	this->portas = portas;
}

string Cadastro::get_nome(){
	return this->nome;
}

string Cadastro::get_cor(){
	return this->cor;
}

string Cadastro::get_placa(){
	return this->placa;
}

int Cadastro::get_ano(){
	return this->ano;
}

int Cadastro::get_portas(){
	return this->portas;
}

void Cadastro::cadastrar(struct carro *c){
	c->nome = get_nome();
	c->cor = get_cor();
	c->placa = get_placa();
	c->ano = get_ano();
	c->portas = get_portas();
}

void Cadastro::exibir(struct carro *c){
    cout << "Nome do carro: " << c->nome << endl;
	cout << "Cor do carro: " << c->cor << endl;
	cout << "Placa do carro: " << c->placa << endl;
	cout << "Ano do carro: " << c->ano << endl;
	cout << "Portas do carro: " << c->portas << endl;
}

Caro Thiago, passei o olho rápido no seu código e percebi que você esqueceu de chamar a função cadastro.cadastrar(&c) coloque-a na última linha do seu if antes do primeiro else

 if(...)
 { 
     ....
     cadastro.set_portas(portas);
     cadastro.cadastrar(&c); // Coloque-a Aqui
 }
 else if(com == "exibir")
 {
      cadastro.exibir(&c);
 }
 else .... 

Qualquer dúvida por favor poste aqui no fórum que tentaremos ajudar.