2016-07-09 2 views
-3

Вот встроенный ввод для моего кода.Как взять ввод из текстового файла для матрицы смежности на языке c

int graph[V][V] = {{0, 2, 0, 6, 0}, 
        {2, 0, 3, 8, 5}, 
        {0, 3, 0, 0, 7}, 
        {6, 8, 0, 0, 9}, 
        {0, 5, 7, 9, 0}, 
       }; 

Я хочу взять этот графический ввод из текстового файла в массив графа.

+0

Возможно, вы забыли опубликовать код, который вы пробовали до сих пор? – Tibrogargan

ответ

2

Если файл содержит однозначные цифры, вы можете использовать этот код, который я использовал один раз.

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

int main() { 
    int v; 
    printf("Please enter the value of v "); 
    scanf("%d",&v); 
    int** graph = malloc(sizeof(int*)*v); 
    int i,j; 
    for(i=0;i<v;i++) 
     graph[i] = malloc(sizeof(int)*v); 
    FILE *fp; 
    fp = fopen("input","r"); 
    char c; 
    for(i=0;i<v;i++) { 
      for(j = 0; j < v; j++) { 
      fscanf(fp, " %c", &c); 
      graph[i][j] = c-'0'; 
     } 
    } 
    for(i=0;i<v;i++) { 
     for(j=0;j<v;j++) { 
      printf("%d ",graph[i][j]); 
     } 
     printf("\n"); 
    } 
    return 0; 
} 
+1

Не нужно бросать 'malloc'. – ameyCU

+1

Спасибо. Я всегда думал, что он возвращает указатель на пустоту. –

+0

да действительно! вот почему вам не нужно указывать значение 'malloc' – Cherubim

Смежные вопросы