我有以下的文本文件: g.dat在C嵌入文本文件++代碼
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可能會將數據轉換爲大字符。我需要下一步的幫助,即如何將此char轉換爲流或其他更好的解決方案。你有什麼建議?
編輯:很多很好的答案,所選的一個對我來說有一個好處,即對代碼的更改是最小的,並且通用性足以使我可以在代碼的其他類似部分中使用它,其中幾個輸入文件具有不同結構被解析。
對不起,如果我不能得到你的問題,但從我的理解你需要這個數據可以通過你的應用程序的生活,而不必讀取數據文件。在這種情況下,你在做什麼是非常好。您一次讀取數據並無休止地使用它。或者你可以按照下面的方式回答建議。 – mawia
其實我想擺脫數據文件,以某種方式插入代碼中的文本,然後更改代碼,以便'gc'和'gt'最終保留與原始代碼中相同的值 – elyase
但我didn沒有得到'然後改變代碼',是否你的代碼覆蓋了它自己的行爲,也就是說它在運行時正在代替原始二進制代碼。正如你可能已經猜到的那樣,我對如果你的意思是比這更簡單,但是plz會解釋.. – mawia