-1

私は助けを求めるためにここにいます。この形式の .txt を読みたい:

20
20

1 2
1 2
3 4 2 2
5 4 1 1 1 1
4 2 1 3 1
3 2 1 7
4 1 3 3 2
2 10 1
5 8 2 1 1 1
3 8 1 1
4 9 1 1 1
4 3 8 1 1
2 2 12
4 3 2 4 3
4 2 2 4 3
3 3 4 2
2 3 2
3 2 1 2
2 5 4
2 4 2

1 6
1 9
2 9 3
4 4 4 1 1
3 1 2 8
3 4 9 1
4 2 7 1 1
2 7 1
3 1 5 1
3 8 5 1
4 1 3 7 1
5 1 2 2 3 1
5 2 1 2 2 1
3 2 4 1
4 2 1 4 1
6 1 1 1 1 2 1
4 1 2 1 2
3 8 1 2
1 4
1 2

私はいくつかのコードを書いています。.txt の各行をコピーし (20 代は読みたくない)、実行時に cmd に直接出力します。コードは次のとおりです。

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



int main( int argc, char *argv[]){

    FILE*fp;
    int i=0, dimension[2];
    char row[128];
    int n_rows, n_columns;
    char *v_row, *v_col;


    fp=fopen(argv[1],"r");


    if(fp == NULL){
        printf("File not found\n");
        exit(0);
                }
    while(i<3){

        fgets(row, 128, fp);
        sscanf(row, "%d", &dimension[i]);
        i++;
        }
    n_rows=dimension[0];
    n_columns=dimension[1];

    printf("dimension: %d x %d\n\n", n_rows, n_columns);
    v_row=malloc((n_rows+1)*sizeof(char));
    v_col=malloc((n_columns+1)*sizeof(char));

    for(i=0; i<n_rows; i++){
        fgets(row, 128, fp);
        printf("row: %s\n", row);


        }
    for(i=0;i<n_columns; i++){
        fgets(row, 128, fp);
        printf("row: %s\n", row);
        sscanf(row,"%s", &v_col[i]);
    }


    fclose(fp);

    exit(-1);
}

しかし、これは私の最終目標ではありません。私が本当にやりたいことは、各行を配列に入れ、最初の数値を 1 つの配列に分割し、残りの行を別の配列に分割することですが、残念ながらそれを行う方法がわかりません。

4

1 に答える 1