変数を読み取って入力しようとしているファイルがあります。ファイルはこれで構成されています:
0\ttake a nap\n
1\tstudy heap-based priority queue\n
101\treview trees for Midterm 2\n
3\tdo assignment 7\n
これは読みにくいかもしれませんが、最初に整数、タブ、その後の文字列、改行が続くことがわかります。整数を取得して変数に入れ、タブを検出し、タブに続く文字列を変数に入れ、改行を検出し、2つの変数を取得して情報を含むノードを作成してから、最初からやり直す必要があります。次の行。何時間もインターネットを精査した後、これが私が思いついたものです。
char activity[SIZE];
char position[SIZE];
char line[100];
FILE *infile;
char *inname = "todo.txt";
int i = 0;
infile = fopen(inname, "r");
if (!infile) {
printf("Couldn't open %s for reading\n");
return 0;
}
while(i < 100 && fgets(line, sizeof(line), infile) != NULL){
sscanf(line, "%s\t%s", position, activity);
printf("%s\n", position);
printf("%s\n", activity);
i++;
}
上記のtxtファイルでこのテストコードを実行すると、結果として次のようになります。
0
take
1
study
101
review
3
do
したがって、最初の数値を(文字列として)正常に取得して変数に入れ、タブを確認し、タブの後の最初のシーケンスを取得して、他の変数に入れた後にそこで停止しているように見えます。この状況を修正するにはどうすればよいですか?