高手帮我看一段程序,,谢谢
extern "C" __declspec(dllexport) int PASCAL delete_file_row(string file_name,string table_name)
{ ifstream infile(file_name.c_str(),ios::in);
if(!infile)
{ cerr<<"oops! nuable to open file "<<file_name<<"--bailing out !\n"; exit(-1);
}
else
cout<<'\n';
vector<string> lines_of_text;
string textline;
long linenum=0;
while(getline(infile,textline,'\n'))
{
cout<<"line read : "<<textline<<'\n';
lines_of_text.push_back(textline);
linenum++;
}
cout<<linenum<<endl;
infile.close();
vector<string>::iterator iter = lines_of_text.begin(); vector<string>::iterator iter_end = lines_of_text.end();
while(iter!=iter_end)
{
if((*iter).compare(table_name+"_Begin")!=0)
{
iter++;
continue;
}
else
{
for(;(*iter).compare(table_name+"_End")!=0;iter++)
{
iter->erase(0,iter->length());
cout<<*iter<<endl;
}
iter->erase(0,iter->length());
cout<<*iter<<endl;
}
iter++;
}
iter = lines_of_text.begin();
iter_end = lines_of_text.end();
long i=0;
ofstream outfile(file_name.c_str());////还用file_name作文件名,替换以前的文件
if (!outfile)
return -1;
for(; iter!=iter_end ; iter++,i++)
{
if(*iter!="")////这个条件一定要有,否则会有很多空行!
{
outfile<<*iter<<'\n';
cout<<*iter<<endl;
}
}
cout<<"*******************i****************= "<<i<<endl;
outfile.close();
// cout<<"lines_of_text : "<<lines_of_text<<endl;
// cout<<"lines_of_text : "<<lines_of_text<<endl;
return 1;
}
这个函数已经做成了一个动态库,但用PB调用它的时候,总提示内存错误,为什么啊。