Ir ao conteúdo

Posts recomendados

Postado

tenho um arquivo txt na formatação 

calculo, segunda , quarta

algera, segunda, quarta, sexta

....

 

quero ler o arquivo txt e guarda em um vetor no formato da struct alguuem pode dar uma luz 

 

struct grade{

char materia[26];

char dias[50]

};

 

  • Amei 1
Postado

@88games16         leia o arquivo com fscanf pois isso pega apenas uma palavra de cada vez , e compara usando strcmp() se for calculo use um contador para calculo e pegue as duas próximas palavras e coloque na variável calculo uma de cada vez e incremente o contador após cada uma , e se for álgebra , use um cantador para algebra e coloque as tres próximas palavras na variável algebra também uma de cada vez e incremente o contador após cada uma ,  mas se você tiver gravado essas informações no arquivo usando o comando fwrite então será mais fácil pois você pode usar o comando fread que já coloca as informações nas variáveis automaticamente .   faça e poste seu código para que  possamos ver como está e em que podemos ajudar  .   e poara postar seu código é melhor usar o botão   <>   que está lá na barra de ferramentas da janela  de responder , pois senão seu código fica faltando alguns caracteres  .

Postado

mas tem varias linhas com diferentes matérias e diferentes dias eu tenho q fazer um loop mas como faço para parar de ler no final do arquivo 

  • Amei 1
Postado

@88games16    nesse exemplo que você postou tem duas matérias ,  mas se tiver mais matérias será do mesmo jeito . apenas que você vai precisar comparar com cada matéria  para ver qual é ,  e de acordo com qual for será uma quantidade de palavras que você vai pegar no arquivo e você vai lendo o arquivo do começo até o final assim :

struct grade Grade[100];
int cont_calc=0;
while(fscanf("%s",&palavra)!=EOF){
    if(strcmp(palavra,"calculo")==0){
        fscanf("%s",&palavra);
        Grade[cont_calc].calculo=palavra;
        cont_calc++;
        fscanf("%s",&palavra);
        Grade[cont_calc].calculo=palavra;
        cont_calc++;
    }
    /* e assim para as outras materias tambem . . . */
}
        

mas diga aí esse arquivo foi criado usando o bloco de notas ou foi criado usando o comando fwrite  ?

  • Curtir 1
Postado

era uma questão de prova seria um arquivo pronto já com varias dessas matérias e os dias de aula no formato do exemplo ali de cima eu pensei que poderia ser algo assim 

 

struct grade{
	char materia[26];
	char dias[50];
};

int main(){
	struct grade grade[100];
	int i=0;
	int num=0;
	char l;
	char str[1000];
	char url[]="arquivo.txt"

	FILE *arq;
	arq = fopen(url, "r");
	while( (fgets(str, sizeof(char), arq))!=NULL ){
			
			grade[i] = fgetc(arq)
			i++
	}
  	l = fegtc(arq);
  	while ( l != EOF){
  		if(l == '\n'){
			  num++; // numero de linhas do arquivo
			}
    }
	fclose(arq);
	for (i=0; i<num; i++){
            printf("%s", grade[i]);
    }
	
	
	return 0;


	

 

  • 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!