Jump to content
Sign in to follow this  
v.avancini

Posição do ponteiro em arquivos c++

Recommended Posts

A função a seguir deveria colocar o ponteiro na décima posição no aquivo e escrever a partir dele, porém isto não ocorre, alguém para me ajudar?

void EstagioAluno::writeEA (ofstream &arq)
{
	char buffer [1000];
	char aux [20];
	short length;
	itoa(matricula, buffer, 10);
	strcat(buffer, "|");
	strcat(buffer, nomeCompleto);
	strcat(buffer, "|");
	strcat(buffer, tipoEstagio);
	strcat(buffer, "|");
	strcat(buffer, nomeEmpresa);
	strcat(buffer, "|");
	strcat(buffer, cnpj);
	strcat(buffer, "|");
	strcat(buffer, nomeSupervisor);
	strcat(buffer, "|");
	strcat(buffer, dataInicio);
	strcat(buffer, "|");
	strcat(buffer, dataFim);
	strcat(buffer, "|");
	strcat(buffer, dataEntregaRelatorioParcial);
	strcat(buffer, "|");
	strcat(buffer, situacao);
	strcat(buffer, "|");
	itoa(horasPrevistas, aux, 10);//converte int em char na base 10 e passa para aux
	strcat(buffer, aux);
	strcat(buffer, "|");
	itoa(horasTotalizadas, aux, 10);//converte int em char na base 10 e passa para aux
	strcat(buffer, aux);
	strcat(buffer, "|");
	strcat(buffer, parecerFinal);
	strcat(buffer, "|");
	length = (short) strlen(buffer);		
	arq.seekp(9, ios::end);//reserva os 10 primeiros bytes para o cabeçalho
	cout << arq.tellp() << endl;
	cout << buffer << endl;
	//campo flag de excluido (avail list)
	arq.write((char*)&length, sizeof(length));
	arq.write(buffer, length);
	cout << arq.tellp() << endl;
}

e dessa forma eu abro o arquivo na main e passo para a função:

case 1:
	arq1.open ("estagios.txt", ios::binary|ios::app);	
	if (!arq1.good())
	{
		cerr<< "Não foi possível abrir o arquivo."<<endl;
					exit(1);
					
	}
	ea.PreencherEA();
	ea.writeEA(arq1);
	arq1.close();
	break;

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Similar Content

    • By Ane_
      Olá gente.
       
      Não consigo abrir o arquivo de desenvolvimento de um aplicativo,
      que foi feito pela themeforest(o template).
      Será que ele não é compatível com as IDE's que eu tô tentando abrir, já tentei no:
       
      Notepad++ Visual Studio (Com o ionic instalado) Android Studio  
      Esse é um dos erros que aparecem:
       
      "the archive not is displayed in the editor because it is either binary or uses unsupported text encoding"
       
    • By flipmartinz13
      Alguém pode me ajudar nessa questão de C++? não estou conseguindo construir o algorítmo corretamente.

      5.92)    Faça um algoritmo que leia a matrícula, nome, sexo e três notas dos alunos de uma escola e obtenha os seguintes resultados:
      a) A matrícula da aluna que obteve a maior média.
      b) A matrícula do aluno que obteve a menor média.
      c) O percentual de mulheres na turma.
      d) Quantos alunos foram aprovados, independente do sexo.
      e) O percentual de alunas aprovadas.
      Obs.: o flag é uma matrícula igual a 0 (zero).
    • By flipmartinz13
      Estou tentando fazer esse exercício de introdução a programação em C++, e estou tendo dificuldades para criar os algoritmos. Alguém poderia me ajudar?


      Uma agência de turismo quer fazer um levantamento das praias da cidade para um programação turística de verão, sabendo-se que cada praia tem um nome e uma distância (em Km) do hotel. Criar um algoritmo que forneça os seguintes dados:
      18

       Porcentagem de turistas nas praias próprias do hotel
       A praia mais adiante
       Nome e distancia das praias não-próprias com distancia do hotel maior que 10 km.
      O algoritmo acaba quando se digita @ para nome da praia.
    • By danisj
      #include<iostream>
      using namespace std;
      int BuscaBin (int lista[], int baixo, int alto, int chave)
      {
          int central;
          int valorcentral;
          while (baixo <= alto)
          {
              central = (baixo + alto)/2;
              valorcentral = lista[central];
              if (chave == valorcentral)
                  return central;
              else if (chave < valorcentral)
                  alto = central -1;
              else
                  baixo = central + 1;
          }
      }
      int main()
      {
          int a[10];
          int chave, pos;
          cout << "Introduza uma lista de 10 inteiros:";
          for (pos = 0; pos < 10; pos++)
              cin >> a[pos];
          cout << "Introduza chave a buscar:";
          cin >> chave;
          pos = 0;
          while ((pos = BuscaBin(a, 0, 9, chave))!= -1)
          {
              pos++;
          }
          cout << chave << " está na lista "  << " vezes na lista " << endl;
      }
          
      O objetivo é inserir uma lista e resultar  numa busca binária e ele retornar a chave, não posso alterar a função BuscaBin
    • By Matex5
      Sua tarefa é implementar uma árvore de busca binária que armazene strings. A ordem de inserção deverá ser alfabética crescente, ou seja, se o valor do elemento da raiz for “iguana”, então a palavra “beterraba” deverá ser inserida na subárvore da esquerda, enquanto a palavra “pagode” deverá ser inserida na subárvore da direita.
      Devem ser declaradas a struct e implementadas as seguintes funções da árvore:
      • criar(): inicialização da árvore.
      • buscar(): busca de um elemento na árvore.
      • inserir(): inserção de um elemento na árvore.
      • remover(): remove um elemento da lista.
      • estaVazia(): retorna um booleano indicando se a árvore está vazia.
      • ehEstritamenteBinaria(): retorna um booleano indicando se a árvore é estritamente binária.
      • ehQuaseCompleta(): retorna um booleano indicando se a árvore é quase completa.
      • ehCompletaCheia(): retorna um booleano indicando se a árvore é completa (cheia).
      • preOrdem(): visita e imprime os elementos da árvore em PRÉ-ORDEM (“RED”).
      • emOrdem(): visita e imprime os elementos da árvore EM-ORDEM (“ERD”).
      • posOrdem(): visita e imprime os elementos da árvore em PÓS-ORDEM (“EDR”). Após implementar a estrutura de dados, escreva um programa em C/C++ que permita ao usuário executar as funções acima

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.