0

私の友人と私はプロジェクトに取り組んでおり、C でファイルから入力を読み取る必要があります。

ファイルは次のようになります。

15 25 200
3 10
17.99 22.99 109.99
100 2 4
5.99 99.99 20.00 49.99
10 10 10 10 10 10 10 10 10 10
3.99 5.99 7.99 8.00 5.00 5.00 5.00 6.00 7.00 9.99
5

ファイルを 1 行ずつ読み取り、各値を異なる変数に等しく設定する必要があります。たとえば、最初の行の最初の値は変数 preSalePrices、2 番目の値 doorPrices、および 3 番目の preSales に設定する必要があります。各行に値の数を指定する方法を理解するのに助けが必要です。たとえば、最初の行では 3 つの値を取得し、2 行目では 2 つの値のみを取得するようにプログラムに指示するにはどうすればよいでしょうか? 次に、5 行目に 4 つの値、というように続きます。

これが私のコードですが、クラッシュするだけです:

int main() {
    float preSalePrices, doorPrices;
    int preSales;
    FILE *fp;
    fp = ("C://Users//Jake//Desktop//Charity Ball//auction01.txt", "r");

    while(fscanf(fp, "%f %f %i", &preSalePrices, &doorPrices, &preSales) != EOF) {
        printf("%f, %f, %i", preSalePrices, doorPrices, preSales);               
    } 
}

私はインターネット全体を見てきましたが、これに特に関連するものは何も見つかりません。

4

1 に答える 1

2

各行の値の数が常にわかっている場合は、行末を無視して値を 1 つずつ読み取ることができます。

行末が重要な場合、最も簡単な方法は、各行を個別に読み取り (例: fgets)、そこからデータを読み取ることsscanfです。

于 2012-11-30T19:14:29.743 に答える