程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> stl-c++ 為什麼不輸出count,函數就崩了?

stl-c++ 為什麼不輸出count,函數就崩了?

編輯:編程解疑
c++ 為什麼不輸出count,函數就崩了?

代碼如下:

void ListPath(string path, list& files)
{
//文件句柄
long hFile = 0;
int count=0;
//文件信息
struct _finddata_t fileinfo;
string p;
if((hFile = _findfirst(p.assign(path).append("\*").c_str(),&fileinfo)) != -1)
{
do
{
count++;//這一行注釋掉沒事
cout<<count<<endl;//這一行注釋掉程序崩了
if((fileinfo.attrib & _A_SUBDIR))
{
if(strcmp(fileinfo.name,".") != 0 && strcmp(fileinfo.name,"..") != 0)
{
ListPath( p.assign(path).append("\").append(fileinfo.name), files );
}
}
else
{
int len=strlen(fileinfo.name);
if(fileinfo.name[len-1]=='t'&&fileinfo.name[len-2]=='x'&&fileinfo.name[len-3]=='t'&&fileinfo.name[len-4]=='.')
{
ifstream filein(StringToChar(p.assign(path).append("\").append(fileinfo.name)));
stringstream buffer;
buffer<<filein.rdbuf();
string source(buffer.str());

                    if(KMP(source))
                    {
                        files.push_back(p.assign(path).append("\\").append(fileinfo.name) );
                    }
                }
            }
        }
        while(_findnext(hFile, &fileinfo)  == 0);
        _findclose(hFile);
    }
}

最佳回答:


這是你的代碼嗎?上面的沒對齊,如果是嗎,那麼具體崩潰的時候有沒有報什麼錯誤?

 void ListPath(string path, list& files)
{
    //文件句柄
    long hFile = 0;
    int count=0;
    //文件信息
    struct _finddata_t fileinfo;
    string p;
    if((hFile = _findfirst(p.assign(path).append("\*").c_str(),&fileinfo)) != -1)
    {
        do
        {
            count++;//這一行注釋掉沒事
            cout<<count<<endl;//這一行注釋掉程序崩了
            if((fileinfo.attrib & _A_SUBDIR))
            {
                if(strcmp(fileinfo.name,".") != 0 && strcmp(fileinfo.name,"..") != 0)
                {
                    ListPath( p.assign(path).append("\").append(fileinfo.name), files );
                }
            }
            else
            {
                int len=strlen(fileinfo.name);
                if(fileinfo.name[len-1]=='t'&&fileinfo.name[len-2]=='x'&&fileinfo.name[len-3]=='t'&&fileinfo.name[len-4]=='.')
                {
                    ifstream filein(StringToChar(p.assign(path).append("\").append(fileinfo.name)));
                    stringstream buffer;
                    buffer<<filein.rdbuf();
                    string source(buffer.str());
                    if(KMP(source))
                    {
                        files.push_back(p.assign(path).append("\\").append(fileinfo.name) );
                    }
                }
            }
        }while(_findnext(hFile, &fileinfo)  == 0);
        _findclose(hFile);
    }
}
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved