2016-07-09 14 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

ファイルに1桁の数字が含まれている場合は、このコードを1回使用することができます。

#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

ありがとうございます。私はいつもvoidポインタを返すと思っていました。確かに –

+0

はい!これは、あなたが 'malloc'の値をキャストする必要がない理由です – Cherubim

関連する問題