Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Henrique Barcelos

seekg não funciona

Recommended Posts

Boa tarde galera, cá estou de novo...

 

É o seguinte...

 

Tenho um arquivo de texto onde guardo o nome e o registro acadêmico dos alunos...

 

Para evitar ter que acessar o arquivo toda hora, o que pretendo fazer é copiar os dados para a memória. Para isso, preciso de alocação dinâmica.

 

O que estou querendo fazer é primeiramente saber o número de linhas do arquivo, aí alocar um vetor contendo os objetos... Até aí td bem...

 

Porém, agora eu quero pegar as informações que estão no arquivo e gravar no objeto... Estou tentando usar seekg(0) para retornar o ponteiro ao início do arquivo, mas não está funcionando... Se uso tellg, le sempre me retorna -1 (EOF)

 

Vejam o código:

void ControleNotas::pegarCadastrados() {
	ifstream file("alunos.txt");
	Aluno a;
	register int i = 0;
	char c[256];
	while (file && !file.eof()) {
 	file.getline(c, 256, '\n');
 	tam++;
	}
	alunos = new Aluno[--tam];
	file.seekg(0);
	cout << file.tellg();
	pause();
	while (file && !file.eof()) {
 	cout << ":P" << endl;
 	file.getline(c, 256, '\n');
 	alunos[i].setName(pegarDados(c, 0, 30));
 	cout << alunos[i];
 	pause();
	}
	file.close();
}

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

e se você mudar um pouco esse modo e usar o rewind()??

ou

file.seekg (0, ios::beg);

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

E pq você ja não guarda, nos primeiros quatro bytes do arquivo o número de linhas que ele contém?

Compartilhar este post


Link para o post
Compartilhar em outros sites

e se você mudar um pouco esse modo e usar o rewind()??

ou

file.seekg (0, ios::beg);

 

[]s

Tentei também, não funciona... =/

 

 

E pq você ja não guarda, nos primeiros quatro bytes do arquivo o número de linhas que ele contém?

Justamente não posso, frescura do professor -.-'...

 

É um trabalho da faculdade...

 

O que eu fiz por enquanto foi criar outro objeto ifstream =/

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.