Ir ao conteúdo

Posts recomendados

Postado

Boa tarde, estou fazendo esse programa para o trabalho da faculdade onde tenho que adicionar os dados dos alunos, salvar em um arquivo txt externo, depois de fechar o exec eu preciso conseguir ler e jogar os dados pro programa a partir do que foi gravado anteriormente no txt, tentei desse jeito ai porém n estou tendo sucesso, vou deixar as partes importantes do codigo, quem puder me ajudar agradeço demais 

#include <stdio.h>
		#include <stdlib.h>
		#include <iostream>
		#include <string.h>
		#include <ctype.h>
		using namespace std;
		
		
		typedef struct 
			{ 
			int matri,idade;
			char nome[50],sexo[50];	
			float media;
			}ficha;
			
		
		 ficha aluno[50]; 
		 
		 
		 char nome[50];
	      
		int i=0;                               
		float mediaS;
		float av1,av2,av3;
		int idade;
		
		void Add(){
				char a;
				int matricula;
			system ("cls");
			
		     cout<< "UNICARIOCA - BANCO DE DADOS"<<endl;
			
		    if (i<50){
		   	
			cout<<"ADICIONAR USUARIO"<<endl;	
			cout<<"Matricula (APENAS NUMEROS): "; cin>>matricula; 
			
			for (int j=0;j<i;j++){
			
			if (matricula==aluno[j].matri){
			
			cout<<"ALUNO JA CADASTRADO"<<endl;
			system ("pause");
			return;
			}
			
			}
			
			aluno[i].matri=matricula;

			cout<<"Nome: "; fflush(stdin); gets(aluno[i].nome);
		    cout<<"Idade: ";cin>>aluno[i].idade;  
			cout<<"Sexo: ";	cin>>aluno[i].sexo;
			cout<<"---------------------------------"<<endl;
		     
			 cout<<"AV1: ";  cin>>av1;
			 cout<<"AV2: ";  cin>>av2;
			 cout<<"AV3: ";  cin>>av3;
			cout<<"---------------------------------"<<endl;
  
void Salvar(){
			int j,op;
			char arquivo[100];
			FILE *arq;
			system ("cls");
			
			 	cout<<"UNICARIOCA - BANCO DE DADOS"<<endl;
			cout<<"SALVAR/CARREGAR ARQUIVO"<<endl;
		
	   cout<<"[1] Salvar"<<endl;
	   cout<<"[2] Carregar"<<endl;
	   cout<<"OPCAO: ";
	   cin>>op;
		
		switch (op){
		case 1:
		cout<<endl<<"Nome do Arquivo Externo: ";
	    cin>>arquivo;
	    strcat(arquivo,".txt");
	    arq= fopen (arquivo,"w");
			
			 if (arq != NULL){
		  for (int j=0;j<i;j++){
		fprintf(arq,"Matricula = %d\n",aluno[j].matri);
	    fprintf(arq,"Nome = %s\n",aluno[j].nome);
	    fprintf(arq,"Idade = %d\n",aluno[j].idade);
	    fprintf(arq,"Sexo = %s\n",aluno[j].sexo);
		fprintf(arq,"Media = %.1f\n",aluno[j].media);
	    
		fprintf(arq,"-------------------------------\n");
	
	}
	
	
	fclose(arq);
	break;
	}
	
	  case 2:
	  FILE *arq;	
	system ("cls");
	cout<<"CARREGAR DADOS"<<endl;
	cout<<"Nome do arquivo externo: "; cin>>arquivo;
	strcat(arquivo,".txt");
	arq= fopen (arquivo, "r");
	if (arq != NULL){
		
		for (int j=0;j<i;j++){
		
		fseek(arq,12,0);
		fscanf(arq,"%d\n",aluno[j].matri);
		fseek(arq,7,1);
		fscanf(arq,"%s\n",aluno[j].nome);	
		fseek(arq,8,1);
		fscanf(arq,"%d\n",aluno[j].idade);
		fseek(arq,7,1);
		fscanf(arq,"%s\n",aluno[j].sexo);
		fclose (arq);
	
	
	}
	
	
	
	
	}
else 
cout<<"ARQUIVO NAO EXISTE"<<endl<<endl;
system ("pause");
fclose (arq);
}
	
	
	
	
	
	
	
	
	
	
	
	
		

 

  • Curtir 1
Postado
1 hora atrás, GuiFonseca16 disse:

depois de fechar o exec eu preciso conseguir ler e jogar os dados pro programa a partir do que foi gravado anteriormente no txt

Confesso que não entendi. O que seria  "depois de fechar o exec" ?

aí não teria mais programa. Você quer dizer importar possíveis dados já existentes a cada execução? 

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!