无法打开文本文件,尽管它位于我的资源文件中 #包括 #包括 //请记住,文本文件已经在资源文件中 int main() { ifstream文件(“Hamlet.txt”,ios::in);//打开文件 如果(file .ISSUN OPEN()=真)CUT问题是,你需要在同一目录中运行可执行文件,其中代码“> HAMLe.txt//Cuth>生命。这是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; }

无法打开文本文件,尽管它位于我的资源文件中 #包括 #包括 //请记住,文本文件已经在资源文件中 int main() { ifstream文件(“Hamlet.txt”,ios::in);//打开文件 如果(file .ISSUN OPEN()=真)CUT问题是,你需要在同一目录中运行可执行文件,其中代码“> HAMLe.txt//Cuth>生命。这是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; },c++,C++,其他一些注意事项:该文件要么是打开的,要么不是。因此,您不需要否则如果是,您可以简单地使用否则。此外,您可以使用非假值来指示true;因此您不需要检查==true(尽管它更明确)。您可以只检查如果(file.is_open()),我认为它更具可读性 把这些建议放在一起,下面是您可以做的: ifstream file("/path/to/Hamlet.txt", ios::in); #包括 #包括 int main() { ifstream文件(“/absolute/path/to/Hamle

其他一些注意事项:该文件要么是打开的,要么不是。因此,您不需要
否则如果是
,您可以简单地使用
否则
。此外,您可以使用非假值来指示true;因此您不需要检查
==true
(尽管它更明确)。您可以只检查
如果(file.is_open())
,我认为它更具可读性

把这些建议放在一起,下面是您可以做的:

ifstream file("/path/to/Hamlet.txt", ios::in);
#包括
#包括
int main()
{ 
ifstream文件(“/absolute/path/to/Hamlet.txt”,ios::in);
if(file.is_open()){

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

#include <fstream>
#include <iostream>

int main()
{ 
      ifstream file("/absolute/path/to/Hamlet.txt", ios::in);
      if (file.is_open()) {
        std::cout << "File is open" << std::endl;
      } else {
        std::cout << "File isnt open" << std::endl;
      }
      return 0;
}

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

是运行可执行文件的目录(即工作目录)中的txt文件?与检查相关,您可能希望使用实验::filesystem::exists({“HAMLET.txt”)检查路径是否存在(或boost::filesystem,如果您不在最新的msvc上)。您是在谈论Win32资源文件吗?
ifstream文件(“Hamlet.txt”,ios::in);
将打开一个名为
Hamlet.txt
的文件,该文件直接存在于当前工作环境中(除此之外没有其他内容)。您提到“资源”,那么您在谈论什么样的资源呢?或者,您可以检查
if(file)
,它检查
std::ios::fail
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.