2

私はここで私のプログラムで立ち往生していて、テキストファイルからデータを読み取りますが、float部分をfloatとして取得しませんでした。43.23の代わりに、.txtファイルから読み取った後に43.00を出力します。どこで間違ったのですか?

    dir[k].age=atol(strtok(NULL,","));
    dir[k].weight=atol(strtok(NULL,","));
    dir[k].height=atol(strtok(NULL,"\n"));
4

3 に答える 3

4
dir[k].weight=atol(strtok(NULL,","));
dir[k].height=atol(strtok(NULL,"\n"));

atolはを読み取りますlong。あなたはおそらくatofが欲しかったでしょう。

于 2013-01-05T15:35:54.483 に答える
3
dir[k].weight=atol(strtok(NULL,","));
dir[k].height=atol(strtok(NULL,"\n"));

整数に変換する関数を使用しているため、小数部分の処理方法がわかりません。strtof代わりに、関数とは対照的に、エラーチェックを可能にするものを使用してくださいato*

于 2013-01-05T15:36:01.300 に答える
1

ここ:

dir[k].weight=atol(strtok(NULL,","));
dir[k].height=atol(strtok(NULL,"\n"));

あなたは長い間値を読んでいます

于 2013-01-05T15:38:55.293 に答える