AndréL. Postado Agosto 25, 2012 Denunciar Share Postado Agosto 25, 2012 (editado) tenho uma função na qual preciso adicionar dados a um arquivo sem sobrepor os dados já existentes no arquivo.e mais ou menos assim: eu abro o arquivo leio os dados existentes e insiro os novos dados no fim da arquivovoid Cont() { int num,x=10,cont=0; ifstream in("Numeros.txt"); //ofstream out("Numeros.txt"); while(!in.eof()){ if(!in){ cout<<"\n\Erro Ao Ler o Arquivo\n\t"; system("pause"); exit(1); } in>>num; } while(num!=0{ cin>>num; } in.close(); } Editado Agosto 26, 2012 por Durub Adicionar tags code [Durub] Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Marcelo Utikawa da Fonseca Postado Agosto 25, 2012 Denunciar Share Postado Agosto 25, 2012 Olá!Ifstream serve apenas para leitura. Já ofstream apenas escrita.Para fazer o que você quer, use fstream pois ele serve para ambas operações.Para saber mais, veja esse link:http://www.cplusplus.com/doc/tutorial/files/Se não conseguir avise!Abraços,Marcelo Utikawa da Fonseca Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 PedroCunha Postado Agosto 26, 2012 Denunciar Share Postado Agosto 26, 2012 Só complementando a resposta do Marcelo, ao usar o ofstream por exemplo para escrever, para que você não sobrescreva o conteúdo do arquivo, basta que ao abri-lo, você faça o seguinte:ofstream Teste ("teste.txt", ios::app);.Att.,Pedro. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 AndréL. Postado Agosto 26, 2012 Autor Denunciar Share Postado Agosto 26, 2012 Deu certo aqui com o ofstream Teste ("teste.txt", ios::app);Vlw! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 AndréL. Postado Agosto 26, 2012 Autor Denunciar Share Postado Agosto 26, 2012 Deu certo aqui com o ofstream Teste ("teste.txt", ios::app);Vlw! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 PedroCunha Postado Agosto 26, 2012 Denunciar Share Postado Agosto 26, 2012 (editado) Às ordens. Só para que você fique um pouco mais informado, o que fiz foi usar uma "flag" ao abrir o arquivo.Podemos usar várias delas ao mesmo tempo, por exemplo:fstream Teste ("teste.txt", ios::out | ios::in | ios::app | ios::trunc) // ios::out para abrir o arquivo para escrita; ios::in para abrir o arquivo para leitura; ios::app para começar a escrita no fim do arquivo; ios::trunc para sobrescrever o conteúdo se o arquivo criado já existe; Obs.: Para separarmos as "flags" utilizamos a 'barra vertical', que no padrão brasileiro é "shift + \".E só mais uma coisa, é de bom costume "ler" alguma coisa do arquivo antes de usar a função "eof". Do contrário ele poderá retornar algum falso verdadeiro. Além disso, penso que o ".eof" não é o que você queria pois ele não indica que o que você está tentando ler é o fim do arquivo, o que ele irá indicar, caso ele retorne 'true' é que você tentou ler algo além do fim do arquivo.Att.,Pedro. Editado Agosto 26, 2012 por PedroCunha Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
AndréL.
tenho uma função na qual preciso adicionar dados a um arquivo sem sobrepor os dados já existentes no arquivo.
e mais ou menos assim: eu abro o arquivo leio os dados existentes e insiro os novos dados no fim da arquivo
Editado por DurubAdicionar tags code [Durub]
Link para o comentário
Compartilhar em outros sites
5 respostass 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.