vector <string> inputarrayconverted = { ... };
try
{
if (atoi(inputarrayconverted[p].c_str()) >= 0)
{
inputarrayconverted[p] = "n";
}
}
catch (int e) { }`
不起作用。它給了我一個「Debug Assertion Failed!」信息。所有我想要做的是檢查,如果陣列位置是一個int,其值改爲「N」如果arrayposition是一個int ...?
的誤差 「調試斷言失敗
文件:矢量 表達:向量標超出範圍「
但是,爲什麼我的try塊沒有捕捉到這個?這是我的問題。
這是堆棧跟蹤。 (我相信)
msvcp100d.dll!590599f3()
[Frames below may be incorrect and/or missing, no symbols loaded for msvcp100d.dll]
Paradigms Assignment 2 C Plus Plus.exe!std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::operator[](unsigned int _Pos=0) Line 932 + 0x17 bytes C++
Paradigms Assignment 2 C Plus Plus.exe!wmain(int argc=1, wchar_t * * argv=0x00314af8) Line 148 + 0x12 bytes C++
Paradigms Assignment 2 C Plus Plus.exe!__tmainCRTStartup() Line 552 + 0x19 bytes C
Paradigms Assignment 2 C Plus Plus.exe!wmainCRTStartup() Line 371 C
kernel32.dll!7647339a()
ntdll.dll!77909ef2()
ntdll.dll!77909ec5()
你的問題是什麼? – user1118321
爲什麼我的編譯器(VS2010)給我一個「Debug Assertion Failed!」?它似乎是完全可以接受的代碼... –
當你敲斷斷言時,堆棧跟蹤是什麼樣的?哪個電話被斷言? '的atoi()'? 'c_str()'?數組賦值? – user1118321