C++ IF流文件已打开,但失败
c++ ifstream file is open but fails
>im 试图解析文件。 但是,ifstream 对象不断失败。 在我的解析头文件中,我有这个:
class ParseDFA {
public:
bool stop_program = false;
std::ifstream dfa_file;
ParseDFA(std::string parse_filename);
};
在我的解析 cpp 文件中,我有这个:
ParseDFA::ParseDFA(std::string parse_filename) {
dfa_file.open(parse_filename, std::ifstream::in);
if (dfa_file.fail()) {
stop_program = true;
}
}
在我的主文件中.cpp我有这个:
std::string filename = "no000.dfa";
ParseDFA *dfa_file = new ParseDFA(filename);
if (dfa_file->stop_program) {
std::cout << "Error opening file." << std::endl;
return 0;
}
我的输出:
Error opening file.
我知道该文件是打开的,因为在我的解析 cpp 文件中,我将 dfa_file.fail() 更改为 !dfa_file.is_open() 并且它不再给我这个错误。 那我做错了什么?
编辑:我能够通过将文件的完整路径放在变量文件名中来解决问题。 所以就像在我的主文件中一样.cpp我有
std::string filename = "/Users/myname/Documents/DFA/no000.dfa";
在构造函数中初始化stop_program
。
相关文章:
- 如果没有malloc,链表实现将失败
- 模板参数替换失败,并且未完成隐式转换
- 具有默认模板参数的多态类的模板推导失败
- 视图中的参数推导失败:take_while
- 我的简单if-else语句是如何无法访问的代码
- 如何将enable-if与模板参数和参数包一起使用
- 无论条件是否为true,if总是在c++中执行
- Arduino:for/while/if在void setup()或void loop()之前?——错误:之前需要不合格
- 链接到自行创建的dll失败
- 带有特殊路径部分的"std::filesystem::weakly_canonical"失败
- GetShortPathName在网络驱动器上使用中文文件夹时失败
- gcc和c++17的过载解析失败
- 为什么使用 P/Invoke 调用 dll 时,某些计算机中的 LoadLibrary 失败?
- 在WSL:configure_file上对config_file的每次调用都失败:配置文件时出现问题
- 使用 GCC 卸载的 OpenMP 卸载失败,并出现"Ptx assembly aborted due to errors"
- 使用cmake从源代码构建MySQL连接器/C++失败(与以前的声明冲突)
- 在 if 语句中调用重载构造函数失败
- C++ IF流文件已打开,但失败
- if(!buydat.empty()) 验证失败(始终为 true)
- 使用模板检查结构体中的字段,启用函数if,并在失败时给出一个漂亮的错误消息