次のテキスト ファイルがあります: g.dat
16
0.0950125098376374401853193354250
0.281603550779258913230460501460
0.458016777657227386342419442983
0.617876244402643748446671764049
0.755404408355003033895101194847
0.865631202387831743880467897713
0.944575023073232576077988415535
0.989400934991649932596154173450
0.189450610455068496285396723209
0.182603415044923588866763667977
0.169156519395002538189312079058
0.149595988816576732081501730116
0.124628971255533872052476277863
0.0951585116824927848099251053810
0.0622535239386478928628438391746
0.0271524594117540948517805723700
そして、それを準備するための次の C++ コード:
ifstream In;
In.open(("g.dat").c_str());
In>>gaussdim;
gt = new double[gaussdim];
gc = new double[gaussdim];
for(int i=0;i<gaussdim/2;i++)
{
In>>gt[i];
gt[gaussdim-i-1]=-gt[i];
}
for(int i=0;i<gaussdim/2;i++)
{
In>>gc[i];
gc[gaussdim-i-1]=gc[i];
}
In.close();
このデータ ファイルを自分のプログラムに埋め込んで、簡単に再配布できるようにし、常に多くの異なるファイルを処理することに依存しないようにしたいと考えています。私はLinuxとMacをターゲットにしているので、xxdはデータを大きな文字に変換する可能性があります. 次のステップ、つまり、この文字をストリームに変換する方法、またはより良い解決策があれば、助けが必要です。おすすめは何ですか?
編集:多くの良い答え、選択されたものには、コードへの変更が最小限であり、構造が異なるいくつかの入力ファイルが解析されるコードの他の同様の部分で使用できるほど一般的であるという利点があります。