2012-11-07 50 views
1

想讀一個文件,因此現在做的: -fstream的函數getline()未處理的異常

void Load(const char * Name){ 
    fs.open(Name, std::ifstream::in); 
     char temp[256]; 

    if(fs.is_open()){ 

     while (!fs.eof()) 
     { 
      fs.getline(temp , 256); 
      Lines.push_back(new std::string(temp)); 
     } 
} 
} 

,但它打破對getline - >

Unhandled exception at 0x7730B4D9 (ntdll.dll) in GameCore.exe: 0xC0000005: Access violation writing location 0x00000014. 

它的檢查

else 
      /* 
      * Not part of _iob[]. Therefore, *pf is a _FILEX and the 
      * lock field of the struct is an initialized critical 
      * section. 
      */ 
      EnterCriticalSection(&(((_FILEX *)pf)->lock)); 

_file.c文件中,這裏有什麼問題?

+0

看起來像內存損壞,但我看不到會導致它的任何代碼。可能是在你調用這個函數之前發生的。但是,我可以看到代碼有幾處錯誤。 – john

回答

2

當您遇到這些問題時,您可能需要仔細檢查您的項目配置。例如,在MSVC中檢查您的項目屬性>配置屬性> C/C++>代碼生成>運行時庫。確保它與所有依賴項一致,並且根據當前版本將其設置爲調試/發佈版本。