我有一个包含字符和数字数据的数据文件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为了让它形成一个字符串文字,很多陷阱只是包括纯文本文件。文本中包含特殊字符怎么办? –