我有以下c++代码。
int main(int argc, char *argv[]) {
std::string filename("config.txt");
if (argc == 2)
filename = argv[1];
if (argc > 2) {
std::cerr << "Too many arguments. Usage: \n"
"<program>\n"
"or\n"
"<program> <config-filename>\n" << std::endl;
return 1;
}
std::ifstream config_stream(filename);
if (!config_stream.is_open()) {
std::cerr << "Failed to open configuration file " << filename << std::endl;
return 2;
}
return 0;
}
这个简单的程序是以命令行参数的形式获取配置文件 如果没有提供这个参数,它就会在当前目录下搜索默认名称的配置文件。在以前的项目中工作得很好,但现在config_stream.is_open()c++总是返回false,即使文件存在。我想弄清楚,这是某种bug还是我遗漏了什么。