Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
andersoney

Problema com salvar e ler arquivo(write e reand)

Recommended Posts

Estou com um problema quando salvo um arquivo, e depois tento retomar os dados presentes nele, quando o programa está rodando, ele funciona legal, porém quando eu fecho e abro novamente ele não consegue ler os dados, aparece apenas um monde de codigo que acredito ser binario.

 

segue o codigo do arquivo main tanto quanto a class.

 

Main.cpp

 

 

#include "alunoDados.h"

 
 
#include <fstream>
#include <cstdlib>
#include <stdio.h>
#include <string.h>
#include <iostream>
 
 
 
using namespace std;
 
int main()
{
    alunoDados arquivo;
    arquivo.menu();
    return 0;
}
 

 

 

alunoDados.h

 

 

#ifndef ALUNODADOS_H

#define ALUNODADOS_H
 
#include <fstream>
#include <cstdlib>
#include <stdio.h>
#include <string.h>
#include <iostream>
 
using namespace std;
class alunoDados
{
    int codigo=1;
    char nome[50];
    float n1, n2, n3, n4, mf;
    public:
        alunoDados()
        {
           /* fstream dados;
            dados.open("Dados_Aluno.txt",ios::app|ios::binary);
            if(!dados)
                {
                    cerr<<"Erro ao abrir o programa"<<endl;
                    exit(1);
                }else{
                }
            dados.close();*/
        }
        virtual ~alunoDados() {}
        void salvar()
        {
            ofstream fsalvar;
            fsalvar.open("Dados_Aluno.txt",ios::binary|ios::ate);
            if(!fsalvar)
                {
                    cerr<<"Erro"<<endl;
                    exit(1);
                }
                alunoDados cpp;
            int a;
            do{
            cout<<"Digite o nome do aluno:"<<endl;
            cin>>nome;
            cout<<"Digite a nota da Primeira prova:"<<endl;
            cin>>n1;
            cout<<"Digite a nota da Segunda prova:"<<endl;
            cin>>n2;
            cout<<"Digite a nota da Terceira prova:"<<endl;
            cin>>n3;
            cout<<"Digite a nota da Quarta prova:"<<endl;
            cin>>n4;
            codigo++;
            cout<<"Deseja cadastrar mais alunos?"<<endl<<"1 - Sim"<<endl<<"0 - Nao"<<endl;
            cin>>a;
            fsalvar.write((char*)&cpp,sizeof(alunoDados));
            }while(a!=0);
            fsalvar.close();
        }
        void menu()
        {
            int opcMenu;
            cout<<"Escolha entre as opções:"<<endl;
            cout<<"1 - Salvar novos alunos."<<endl<<"2 - Verificar registros"<<endl<<"0 - Sair."<<endl;
            cin>>opcMenu;
            switch(opcMenu)
            {
                case 1:
                    salvar();
                    menu();
                    break;
                case 2:
                    ler();
                    menu();
                    break;
                default:
                    exit(0);
                    break;
            }
 
        }
        void ler()
        {
            alunoDados cpp;
            ifstream ler_arquivo;
            ler_arquivo.open("Dados_Aluno.txt",ios::binary|ios::in);
            ler_arquivo.seekg(0);
            if(!ler_arquivo)
                {
                    cerr<<"Erro ao ler arquivo"<<endl;
                    exit(1);
                }
            while(ler_arquivo)
                {
                    ler_arquivo.read((char*)&cpp,sizeof(alunoDados));
                    mostrar_na_tela();
                }
                ler_arquivo.close();
        }
        void mostrar_na_tela()
        {
            cout<<"Nome do aluno:"<<endl<<nome<<endl;
            cout<<"Nota da primeira unidade:"<<endl<<n1<<endl;
            cout<<"Nota da segunda unidade:"<<endl<<n2<<endl;
            cout<<"Nota da terceira unidade:"<<endl<<n3<<endl;
            cout<<"Nota da quarta unidade:"<<endl<<n4<<endl;
 
        }
    protected:
    private:
 
};
 
#endif // ALUNODADOS_H
 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

é porque voce nao ta nem lendo do,nem gravando nos membros da estrutura

por exemplo,no caso seria

cout<<"Digite o nome do aluno:"<<endl;

cin>>cpp.nome;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×