Ir ao conteúdo
  • Cadastre-se

Problema na leitura em arquivo de entrada txt - C


mgwn

Posts recomendados

Olá! Estou fazendo um trabalho sobre algoritmo de Dijkstra, e estou tendo problemas para ler o arquivo de entrada.

O arquivo de entrada seguirá o seguinte modelo:

 

Citação

5 7 
A B 10
A D 30
A E 100
B C 50
C E 10
D C 20
D E 60

 

Onde a 1ª linha me dirá a quantidade de vértices e arestas do grafo, a última linha o ponto de partida (origem), e o restante as arestas.


Não estou conseguindo ler as arestas e atribuir o peso aos respectivos vértices. Segue meu código:
 

#include <stdlib.h>
#include <stdio.h>
#include <limits.h>

int letraParaNumero(char vertice){
	char c = vertice;
	int v = c - 65;
	return v;
}

int main(){
	int V, E;
	FILE *f = fopen("dados.txt", "r");	
	fscanf(f, "%d %d", &V, &E); // lê primeira linha do arquivo
	int grafo[V][V];
	
	int v1, v2, peso;
	char vertice1, vertice2;
  
	while(fscanf(f, "%c %c %d", &vertice1, &vertice2, &peso) != EOF){
		v1 = letraParaNumero(vertice1);
		v2 = letraParaNumero(vertice2);
		grafo[v1][v2] = peso;
		grafo[v2][v1] = peso;
  	}
			
	fclose(f);
}

Também preciso fazer a leitura da última linha e atribuir a variável de partida, que seria lida como um char e convertida para int com a função letraParaNumero.

 

Obrigado pela atenção!

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!