Olá, meu povo
Eu vi que o problema é recorrente, mas não consegui achar uma solução.
Quando colocamos um arquivo para ser lido dentro do while sob a condição:
while(!arq.fail()), ou mesmo while(!arq.eof()), acaba que q ao ler a última linha do arquivo, as funções eof( ) ou fail( ) ainda retornam FALSE, permitindo que o loop seja executado novamente e então o "arq>>" vai fazer a leitura do EOF, mas sem receber novos dados, e por isso acaba repetindo a última linha lida.
Estou preparando uma aula pra ministrar sobre isso, por isso não dá mais tempo de mudar a estrutura de leitura e escrita...
Segue abaixo o algoritmo q estou usando, e fico muito grato por qualquer dica q eu receber:
(o programa salvou uma lista de personagens com os animes aos quais esses personagens pertencem, agora quer exibir os dados)
void exibe_arquivo( ){
string anime1, nome1;
ifstream arq;
arq.open("C:\\ListaPersonagem.txt", ios::in);
if(arq.fail()){
cout<<"Erro na abertura do arquivo!"<
cout<<"Impossível ler!"<
}
else{
while(!arq.fail( )){
arq>>nome1;
cout<<"Personagem: "<
arq>>anime1;
cout<<"Anime: "<
}
}
arq.close();
}
cin.ignore(); getchar();
}
(putz, ficou tudo alhinhado à direita aqui, e não consegui mudar... foi mal)
herriot
Novo Membro
Registrado
4 Mensagens
0 Curtidas