私は助けを求めるためにここにいます。この形式の .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 つの配列に分割し、残りの行を別の配列に分割することですが、残念ながらそれを行う方法がわかりません。