我有下面这个程序,它从用户获取文件的数量,然后获取文件名,并将文件的内容读入优先级队列。当我执行该程序时,在输入第一个文件名后,会出现分段错误。从多个文件读取时出现分段错误
#include <cstdlib>
#include <ctime>
#include <functional>
#include <iostream>
#include <queue>
#include <fstream>
using namespace std;
int main() {
char *filename;
int fnum;
cout<<"Number of files:"<<endl;
cin>>fnum;
int i;
priority_queue<int, vector<int>, greater<int> > pqi;
for(i = 0; i<fnum;i++){
cout <<"Enter Filename:"<<endl;
cin>>filename;
ifstream inFile(filename);
long n;
while(!inFile.eof()){
inFile >> n;
pqi.push(n);
}
inFile.close();
inFile.clear();
}
while(!pqi.empty()) {
cout << pqi.top() << ' ';
pqi.pop();
}
}
无法找出原因。
我可以建议编辑职位和修复你的代码的缩进? –
你用调试器试过了吗? –
如果这是一项家庭作业,您必须明确标记它'家庭作业'。 – Hossein