C++ 在递归函数中使用ifstream打开多个文件
我想知道我是否能做到以下几点。C++ 在递归函数中使用ifstream打开多个文件,c++,recursion,ifstream,C++,Recursion,Ifstream,我想知道我是否能做到以下几点。 我试图在递归函数中打开多个文件 void openFile(Node* n, string file) { ifstream ifile; ifile.open(file.c_str()); string command; while(ifile >> command) { if(...) { ... } else if(command == "blah") {
我试图在递归函数中打开多个文件
void openFile(Node* n, string file) {
ifstream ifile;
ifile.open(file.c_str());
string command;
while(ifile >> command) {
if(...) {
...
} else if(command == "blah") {
ifile >> command;
executeFile(n, command);
}
}
ifile.close();
return;
}
我编写了这样的函数,但在unix中测试时不断出现以下错误:
Segmentation fault (core dumped)
我想知道这是否是由于我的打开文件功能造成的。有什么问题吗?
提前谢谢你 尝试使用调试器找出问题所在,或者至少获取一些更详细的错误信息,最好是崩溃的行号。我们很难回答这个问题,就像现在发布的那样。在递归函数中使用局部变量没有什么错。可能是堆栈溢出(递归太深)或资源不足。试着调试代码,正如前面所说,使用递归没有什么错。您可能会遇到文件描述符数量的限制,您可以使用
ulimit-n
进行检查。要确定为什么会出现分段错误,我们需要更多的代码。是的,我认为错误是由程序的其他部分引起的。非常感谢。