Estou fazendo um programa para a faculdade, que é para gravar no HD um cadastro de um cliente, com alguns dados...
E estou usando a biblioteca fstream, assim:
#include <fstream>
using std::istream;
using std::ostream;
O programa mesmo, roda dentro de um DO / While, que é para rodar sempre com um menu...
Assim... o programa começa mostrando um menu:
1 - cadastro de pessoas
2 - cadastro de livros
3 - Listar pessoas
4 - listar livros...
E a cada finalização você escolhe se volta ou não para esse menu...
cada opção desta estar dentro da função Switch()...
ai quando eu escolho a opção 3... ele lista beleza...
depois de mostar todos, tem a opção de voltar para o menu, ou sair do programa, quando você escolhe voltar para o menu, e escolhe denovo a opção 3, listar novamente as pessoas, ele n le mais nada...
Pergunta
Guest Guisawyer
Estou fazendo um programa para a faculdade, que é para gravar no HD um cadastro de um cliente, com alguns dados...
E estou usando a biblioteca fstream, assim:
#include <fstream>
using std::istream;
using std::ostream;
O programa mesmo, roda dentro de um DO / While, que é para rodar sempre com um menu...
Assim... o programa começa mostrando um menu:
1 - cadastro de pessoas
2 - cadastro de livros
3 - Listar pessoas
4 - listar livros...
E a cada finalização você escolhe se volta ou não para esse menu...
cada opção desta estar dentro da função Switch()...
ai quando eu escolho a opção 3... ele lista beleza...
depois de mostar todos, tem a opção de voltar para o menu, ou sair do programa, quando você escolhe voltar para o menu, e escolhe denovo a opção 3, listar novamente as pessoas, ele n le mais nada...
olha o codigo do case 3: para listar pessoas:
case 3:
system ("cls");
cout<<"==================\n";
cout<<"Lista dos Clientes\n";
cout<<"==================\n\n";
inCliente.open("cli.dat", ios::in);
inCliente.seekg(0, ios::beg);
if(!inCliente)
{
cerr<<"Arquivo não pode ser aberto"<<endl;
exit(1);
}
inCliente.read(reinterpret_cast<char *> (&x), sizeof(cliente) ) ;
do
{
x.print();
inCliente.read(reinterpret_cast<char *> (&x), sizeof(cliente) ) ;
}
while(inCliente && !inCliente.eof() );
inCliente.close();
break;
ai quando eu listo na segunda aparece a mensagem: "Arquivo não pode ser aberto", q é a função q testa se estar tudo ok...
eu já fiz até o teste tirando o q estar em negrito... mas a unica diferença é q n aparece a mensagem q n pode abrir...
e quando eu coloco o // antes do exit(1), ele lista so a ultima pessoa cadastrada...
Eu já to ficando doido com esse problema...
E desde já muito Obrigado!!!
Até!
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.