Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

crazygod

Problema com Ficheiros Binarios

Mensagens Recomendadas

crazygod

Boas pessoal, tenho uma duvida, um problema, nao sei...

tou agora a aprender (autodidata) a mexer com a linguagem C++

e tenho aqui um exemplo de um programa que escrevi e tentei executar o programa e nao consegui....

basicamente o que esta a acontecer é que nao estou a ter acesso num ficheiro binario as coisas que estao para traz, neste exemplo...

#include <iostream>
#include <fstream>
using namespace::std;
const int NUMINT = 20;
int main(){
fstream farray("array.txt", ios::in|ios::out|ios::binary);
//escreve sequencialmente os valores inteiros
for (int i=0; i<NUMINT; ++i)
	farray.write((char *)&i, sizeof(int));
int begin,end;
//inverter os valores inteiros contidos em farray
for(begin=0, end=NUMINT-1; begin < end; ++begin, --end){
	int auxBegin, auxEnd;
	// le o inteiro cuja posição é begin
	farray.seekg(begin * sizeof(int) );
	farray.read((char*)&auxBegin, sizeof(int));
	//le o inteiro cuja posição é end
	farray.seekg(end * sizeof(int));
	farray.read((char*)&auxEnd, sizeof(int));
	//escreve o valor auxEnd na posição auxBegin
	farray.seekp(begin * sizeof(int));
	farray.write((char*)&auxEnd, sizeof(int));
	// escreve o valor de auxBegin na posição do auxEnd
	farray.seekp(end * sizeof(int));
	farray.write((char*)&auxBegin, sizeof(int));
}
//mostrar no ecra os valores inteiros do farray
farray.seekg(0);
int aux;
while(farray.read((char*)&aux, sizeof(int)));
cout << aux << ' ' << endl;
system("pause");
return 0;
}

na consola de output ele so me mostra o valor "0"....

ja tentei ccriar um tipo de base de dados de aniversarios

(usando o struct) e depois quando faço a pesquisa para saber quem é que eu tenho a fazer anos, nao mostra nada, so mostra se eu meter a data da ultima pessoa que eu inseri na base de dados...

Obrigado

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.