0
私は、小数点以下12桁までの精度を持つテキストファイルを持っています。だから私はこのatof()はdoubleの代わりにfloatを返します
void txt2vec(const std::string& file, std::vector<double>& data)
{
std::string line;
std::ifstream myfile(file);
if (myfile.is_open())
{
while (getline (myfile,line))
{
std::cout << atof(line.c_str()) << std::endl;
//data.push_back(atof(line.c_str()));
}
myfile.close();
}
}
atof
を書いたC++ VECへの数は、二重が、私はこれはプログラム
-0.0340206
-0.0873645
0.0789533
0.115022
0.0809852
0.118469
0.113328
0.112746
-0.0331071
の出力であるフロート
を取得していますを返す必要がありますロードする
どこにあるべきか
-0.0340205617249
-0.0873644948006
0.078953281045
0.115022487938
0.0809852406383
0.118468873203
0.11332821846
0.112745501101
-0.0331071354449
'ostream :: operator <<(double)'はデフォルトで6桁の精度を出力します。 'std :: setprecision'も参照してください –
いいえ、あなたは' float'の結果を得ていません。あなたは 'double'の結果を得ています。 –
これは問題ではありませんが、 'std :: endl'が行う余分なものが本当に必要ですか? '' \ n ''は行を終わらせます。 –