-1

説明:

この形式に従うファイルがあります: 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 のときに関数が停止するようにコーディングするにはどうすればよいですか?

4

2 に答える 2

0

面積の値は1です。scanned_area==1のときに関数が停止するようにコーディングするにはどうすればよいですか?

breakループから抜け出すために使用できます。

while (condtion)
{
  // some code
  if (scanned_area == 1)
  {
     break;
  }
}
于 2013-02-04T00:24:57.140 に答える
0

関数を停止したい場合は、適切な値を返すだけです。あなたの場合は整数を返します。関数が return ステートメントにヒットすると、値が返され、実行後は何もありません。

これが役立つことを願っています:D

于 2013-02-04T02:10:58.113 に答える