Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom... sou iniciante em programação e em um TP da faculdade foi solicitado a criação de uma agenda em que os dados sejam salvos em arquivo e carregados para modificação/exclusão.
Ocorre que todo o processo funciona perfeitamente, exceto por um detalhe: Ao carregar o os dados através do ifstream, os dados digitados nas variáveis agenda[c].nome_compromisso e agenda[c].descricao_compromisso, que contém espaço não são lidas completamente - somente até o espaço - conforme imagem abaixo:
http://picasaweb.google.com/beto.corujao/OutrasImagens#5363646087015678530
Se alguém puder me ajudar, segue abaixo o trecho do código:
void ler_arquivo(int *recebe_lidos){//------------------------- Ler um arquivo
int leitura=0;
ifstream leitor("agenda");
if(leitor.is_open())
{
leitor >> leitura;
leitor.ignore();
for(int c=0;c<=leitura;c++)
{
leitor >> agenda[c].id;
leitor.ignore();
leitor >> agenda[c].nome_compromisso;
leitor.ignore(50,'\n');
leitor >> agenda[c].dia_compromisso;
leitor.ignore();
leitor >> agenda[c].hora_compromisso;
leitor.ignore();
leitor >> agenda[c].descricao_compromisso;
leitor.ignore(200,'\n');
leitor >> agenda[c].prioridade;
leitor.ignore();
*recebe_lidos=c;
}
cout << " Dados Lidos : " << leitura << endl;
for(int c=0;c<leitura;c++)
{
cout << agenda[c].id << endl
<< agenda[c].nome_compromisso << endl
<< agenda[c].dia_compromisso << endl
<< agenda[c].hora_compromisso << endl
<< agenda[c].descricao_compromisso << endl
<< agenda[c].prioridade << endl;
}
cin.get();
}
}Carregando comentários...