c++ - 无法打开文本文件,尽管它在我的资源文件中

标签 c++

#include <fstream>
#include <iostream>
//Bear in mind that the text file is already in the resources file
int main()
{ 
      ifstream file("Hamlet.txt", ios::in);//open file
      if (file.is_open() == true) cout << "File is open" << endl;
      else if (file.is_open() == false) cout << "File isnt open" << endl;
      return 0;
}

所以我想看看文件是否打开,文本文件在资源文件中,据我所知文件的路径可以写成“Hamlet.txt”。我一直收到文件未打开,可能是什么原因? 任何人都可以对此做出解释吗? 提前致谢

最佳答案

如果您谈论的是 Win32 资源文件,则无法打开您的文件 像那样。您需要使用资源 API:

HRSRC const rsrc = FindResource(nullptr, MAKEINTRESOURCE(HAMLET), RT_STRING);
HGLOBAL const resource = LoadResource(nullptr, rsrc);
void const* const data = LockResource(resource);
// Use your data here.

HAMLET 是一个预处理器宏,用于从 .rc 文件中识别您的“Hamlet.txt”文件。

关于c++ - 无法打开文本文件,尽管它在我的资源文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34178344/

相关文章:

c++ - 我在我的系统上出错的地方程序运行正常但在提交时得到错误的答案http ://www. spoj.com/problems/NITT2/

c++ - 将自定义谓词重新表述为标准谓词

c++通过值或引用在lambda内部分配指针值

c++ - 用于维护 API 向后二进制兼容性的 GCC 与 MS C++ 编译器

C++ typedef 静态函数指针 : undefined symbol

c++ - float 距离为80位长的两倍

c++ - 如何使用直接io写入小文件而不扩展文件大小

java - 将 wav 文件切割成片段

c++ - 是否有 Vim 插件可以帮助我像 Visual Studio 一样进行调试?

c++ - int{10} 和 10 之间有什么区别?