程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> c++-這個函數有什麼問題,一調用就中斷

c++-這個函數有什麼問題,一調用就中斷

編輯:編程綜合問答
這個函數有什麼問題,一調用就中斷

一調用就拋出框框:
carmain3.0.exe 中的 0x758e4598 處有未經處理的異常: Microsoft C++ 異常: 內存位置 0x0042ef1c 處的 std::invalid_argument。

下面是該函數
void big_car::read(){
fstream big_carfile("big_car.txt",ios::in|ios::out);
vector vec;

fun_substr(big_carfile," ",vec);
vec.resize(9);
int i,j;
for(i=0,j=0;i<vec.size();i=i+9,j++){

   c1[j].num = vec[i];
   c1[j].id = vec[i+1];
   c1[j].company= vec[i+2];
   c1[j].km = atoi(vec[i+3].c_str());
   c1[j].oil = stoi(vec[i+4].c_str());
   c1[j].cost= stoi(vec[i+5].c_str());
   c1[j].road = stoi(vec[i+6].c_str());
   c1[j].all_cost =stoi( vec[i+7].c_str());
   c1[j].people = stoi(vec[i+8].c_str());

}
count_big_car = j+1;
big_carfile.close();

big_car為一個car的派生類,
相關頭文件,變量已經定義。

內部調用的函數 fun_substr()
//功能描述:將指定文件每一行中字段按一定分割符分割的值存至vector
//輸入:待讀取的文件,字段之間的分割符
//輸出:獲取字段內容的動態數組
//返回值:無
void fun_substr(fstream &file,string str_sep ,vector &vec){

int count =0;
string str = "";
string str_temp = "";
int pos = 0;
int sep_len = str_sep.length();
int i=0;
while(getline(file,str)){
    pos = str.find(str_sep);
    vec.push_back(str.substr(0,pos));
    str_temp = str.substr(pos+1,str.length()-pos-sep_len);
    pos = str_temp.find(str_sep);
        while(str_temp.compare("")&& (pos!=-1)){
        i++;
    vec.push_back(str_temp.substr(0,pos));
    str_temp = str_temp.substr(pos+1,str_temp.length()-pos-sep_len);
    pos = str_temp.find(str_sep);
    }
    vec.push_back(str_temp);
}

}

已經困擾很久。
求解脫。。!!!!!!!!!!!。。。。。。。。。。。。。

最佳回答:


起碼調試跟蹤一下,看具體出錯的地方。看錯誤信息是指針訪問出錯

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved