Ir ao conteúdo
  • Cadastre-se
88games16

C ler um arquivo txt para um vetor string

Recommended Posts

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

@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  .

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

@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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

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

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

×