- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在从命令行读取输入文件。
int main(int argc, char **argv)
{
Scene myScene;
string filename = argv[1];
myScene = Parser(filename);
...
}
在另一个文件中,我使用了像这样 declerated 的解析器函数;
Scene Parser(string filename)
{
string line;
ifstream myfile (filename.c_str());
...
return scene;
}
我收到错误;在抛出“std::logic_error”的实例后终止调用 what(): basic_string::_S_construct null 无效
程序收到信号 SIGABRT,中止。
我已经搜索了错误。我认为这是因为这些线。但我找不到真正的原因。谁能帮帮我?
最佳答案
这意味着 filename
在 Parser
中是 NULL,可能是因为您没有向程序的命令行传递任何参数。
确保始终检查是否将预期数量的参数传递给您的程序。例如,你可以这样做:
int main(int argc, char *argv[]) {
if (argc != NUMBER_OF_EXPECTED_ARGUMENTS) {
exit(EXIT_FAILURE);
}
// ...
string filename(argv[1]);
Scene myScene = Parser(filename);
// ...
}
关于c++ - basic_string::_S_construct null 无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21068758/
我正在从命令行读取输入文件。 int main(int argc, char **argv) { Scene myScene; string filename = argv[1]; mySce
所以我将 Bison 用于我正在进行的项目。我的 Bison 文件看起来与此类似: %{ #include .... %} %union { int intVal; double dVal;
这个问题不太可能帮助任何 future 的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visit
我正在转换一些代码以停止使用 char*,而是使用 std::string 来避免内存泄漏和/或缓冲区过载。 但是我遇到了一个出现上述错误的函数。我并没有真正改变太多 atm: GuiText::Gu
我从数据库函数返回一个字符串或 NULL 到主程序,有时我从异常中得到这个错误: basic_string::_S_construct NULL not valid 我认为是因为数据库函数返回 NUL
我是 C++ 的新手,我尝试编写一个简单的字符串反向程序。当我编译它时,一切正常,但是当我运行它时,出现以下错误: terminate called after throwing an instanc
我在这个程序中收到 std::logic_error: basic_string::_s_construct null not valid。我该如何解决?我已经尝试过 previously poste
我一直在尝试将 cfg 读入多重链接列表,但我收到此错误,请有人帮忙。它不断给出这个错误。我不认为有什么错误。请检查这段代码并告诉我哪里有错误导致程序崩溃并出现图片中所附的异常 #include
在这里,我尝试使用 send() 方法将字符串发送到函数参数中并作为套接字中的参数。 user_main.cpp int main(int argc, char *argv[] ) { con
在 Debian 上,我需要读取一个环境变量,否则返回一个空字符串。这是我的代码: std::string getEnv(std::string var) { char* val = ::ge
if(player!=NULL) player->shuffled(); 我这样做是为了避免将空引用传递给字符串构造函数,但是在编译时仍然会出错。 最佳答案 不知何故,您正在调用 std::s
我是一名优秀的程序员,十分优秀!