1

入力ファイルから double を読み取るために次のように記述しましたが、面倒なようです。他にどのような方法を使用できますか? 知っておくべき長所/短所はありますか?

2進数<->10進数の変換の問題はないはずなので、この方法が最も正確だと思いますが、それは正しいですか?

#include<string>
#include<iostream>
#include<iomanip>
#include<fstream>
#include<sstream>

void Stats::fill()
{
    string temp;
    stringstream convert;

    statFile.open("statsinput.txt");
    for(int i = 0; i<maxEntries && !statFile.eof(); i++)
    {
        getline(statFile, temp);
        convert<<temp;
        convert>>stats[i];
    }
    statFile.close();
}
4

2 に答える 2

3

ファイルで直接入力演算子を使用しますか?

for(int i = 0; i<maxEntries && statFile >> stats[i]; i++)
    ;

すべての入力ストリームは同じ基本クラスを継承するため、他のすべての入力ストリームと同様のストリームstringstreamまたは他のすべての入力ストリームで実行できるすべての操作を実行できることを忘れないでください。cin

于 2013-01-23T06:35:32.640 に答える
1

最新の C++ (C++ 11) コンパイラを使用している場合は、std::stof、std::stod、または std::stold 関数を使用できます。

次に、次のように記述できます。

 getline(statFile, temp);
 double d = std::stod(temp);

C++ リファレンス ページの詳細情報

于 2013-01-23T06:48:56.210 に答える