我有一個包含字符和數字數據的數據文件data.txt。 通常我在我的程序中使用文件流如 ifstream infile("C:\\data.txt",ios::in);
然後使用infile.getline
讀取這些值來讀取data.txt。將數據文件包含到C++項目中
是無論如何它可能有包含到項目data.txt文件,並與項目,這樣當我讀文件我不必擔心文件的路徑 (我的意思是我編譯 它只是使用類似ifstream的infile("data.txt",ios::in))
。
而且如果我可以編譯我的項目中的文件,我不會擔心 提供與我發佈一個單獨的data.txt文件,建立對任何人誰願意使用 我的計劃。
我不想將data.txt文件更改爲某種頭文件。我想保留
.txt文件,並以某種方式將其包裝在我正在構建的可執行文件中。我仍然 想要繼續使用ifstream infile("data.txt",ios::in)
並從文件
中讀取行,但希望data.txt文件與其他.h或.cpp文件一樣與項目一起使用。
我正在使用C++ visual studio 2010. 這將是一種人提供一些洞察上述事情,我想 做。
更新
我設法使用下面的代碼在數據文件中的資源
HRSRC hRes = FindResource(GetModuleHandle(NULL), MAKEINTRESOURCE(IDR_TEXT1), _T("TEXT"));
DWORD dwSize = SizeofResource(GetModuleHandle(NULL), hRes); HGLOBAL hGlob = LoadResource(GetModuleHandle(NULL), hRes);
const BYTE* pData = reinterpret_cast<const BYTE*>(::LockResource(hGlob));
閱讀,但我怎麼看單獨的行?不知何故,我無法閱讀單獨的行。我似乎無法區分一條線與另一條線。
我認爲'資源''.rc'文件做你正在尋找。這就是我將圖像和圖標打包成Visual C++程序的方式。 http://msdn.microsoft.com/en-us/library/7zxb70x7.aspx – zero298
這似乎涵蓋了幾乎所有內容:http://stackoverflow.com/questions/7366391/embedding-a-text-file-in-an -exe-which-can-be-accessible-using-fopen – Eejin
@Eejin爲了讓它形成一個字符串文字,很多陷阱只是包括純文本文件。文本中包含特殊字符怎麼辦? –