説明:
この形式に従うファイルがあります: number number number
、ここにいくつかの行があります:
0 00 19
0 900000 949999
0 9500000 9999999
1 00 09
2 00 19
2 200 349
2 35000 39999
2 900000 949999
2 9500000 9999999
3 00 02
3 7000 8499
3 9500000 9999999
4 00 19
4 7000 8499
80 00 19
80 900000 999999
81 00 19
81 900000 999999
82 990000 999999
83 7000 8499
958 95000 99999
959 7000 8499
960 85000 99999
961 00 19
最初の列は を表しarea
、2 番目の列はnum1
および を表しnum2
ます。
次のようにして、各列をそれぞれの変数に格納することができました。
int isRegistered(FILE* fp, int area)
{
int finished = 1;
int scanned_area;
char num1[7], num2[7];
int rc = 1;
rewind(fp);
while (finished != EOF) {
finished = fscanf(fp,"%d %s %s\n", &scanned_area, &num1, &num2);
}
return rc;
}
私は「fscanfを使用すべきではない」ことを知っており、を使用してスキャンすべきではありません%s
が、これらは割り当て固有のものであり、変更できません。
これで、これらすべての数値がそれぞれの変数に格納されました。数値の最初の列は にscanned_area
、2 番目の列はnum1
に、3 番目の列は に格納されますnum2
。
シナリオ
領域の値が 1 です。scanned_area == 1 のときに関数が停止するようにコーディングするにはどうすればよいですか?