gpt4 book ai didi

c++ - basic_string::_S_construct null 无效

转载 作者:可可西里 更新时间:2023-11-01 15:07:51 26 4
gpt4 key购买 nike

我正在从命令行读取输入文件。

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,中止。

我已经搜索了错误。我认为这是因为这些线。但我找不到真正的原因。谁能帮帮我?

最佳答案

这意味着 filenameParser 中是 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com