Ir ao conteúdo
  • Cadastre-se

C ler um arquivo txt para um vetor string


88games16

Posts recomendados

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

Link para o comentário
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
Link para o comentário
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
Link para o comentário
Compartilhar em outros sites

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