1
我正在寫一個程序來解析日誌文件,並決定要爲C++有關越好,我被擊中了與調試斷言這條線 -調試斷言性病失敗::抹去
sLine.erase(remove_if(sLine.begin(), sLine.end(), isspace), sLine.end());
這似乎是因爲值爲-80的字符在日誌文件的第2000行。
所以,我想這
sLine.erase(remove_if(sLine.begin(), sLine.end(), [](char c) { return c >= -1 && c<=255; }), sLine.end());
但是這個代碼片斷被卡住,沒有解釋。
所以,最後我有三個問題 -
- 這是爲什麼調試斷言是必需的?
- 第二個代碼段失敗的原因是什麼?
- 您可以提出任何解決方法嗎?
感謝您的幫助!
2.噢,是的,我應該扭轉這些跡象。我愚蠢。來自「簡明英漢詞典」工作正常,這個斷言是由isspace引發的,而不是標準庫,正如我想的那樣。謝謝! –