簡單錯誤記錄(C )

2021-08-28 20:08:56 字數 1046 閱讀 4909

開發乙個簡單錯誤記錄功能小模組,能夠記錄出錯的**所在的檔名稱和行號。

處理:1、 記錄最多8條錯誤記錄,迴圈記錄,對相同的錯誤記錄(淨檔名稱和行號完全匹配)只記錄一條,錯誤計數增加;

2、 超過16個字元的檔名稱,只記錄檔案的最後有效16個字元;

3、 輸入的檔案可能帶路徑,記錄檔名稱不能帶路徑。

一行或多行字串。每行包括帶路徑檔名稱,行號,以空格隔開。

將所有的記錄統計並將結果輸出,格式:檔名 **行數 數目,乙個空格隔開,如:

本題需要注意的點是1)統計所有的結果,只輸出最後8次的結果,有順序關係,因此不能用hash,只能使用vector

2)相同錯誤記錄只記錄一次,指的是  淨檔名稱+ 「 」+行號這一字串完全相同

3)超過16個字元的檔名稱,指的是處理完之後要輸出的結果,在統計時不能考慮這一條,因為有這種情況,c:\abcdefghijklmnopqr   255 和 c:\cdefghijklmnopqr  255,這兩個應該不一樣,如果在處理階段就截成16個,則這兩個就是相同的了,會出現統計錯誤。當然我們最後輸出的時候,由於只是輸出有效的16位,因此cdefghijklmnopqr  255   1   會輸出兩次。

ac**如下

#include#include#include#include#include#includeusing namespace std;

int main()

string s = s1 + " " + s2;

vector>::iterator re = find_if(ves.begin(), ves.end(), [s](pairpai) );

if (re != ves.end()) else

} int i = ves.size()>8 ? ves.size() - 8 : 0;

string temp;

for (; i16)

cout << temp << " " << ves[i].second << endl;

} return 0;

}

簡單錯誤記錄

使用了部落格的 設計思路。這裡主要記錄一下在處理這一題時自己理解錯的地方 1 需要從輸入的日誌資訊中提取檔名和行號。如果這樣想這個問題,那麼需要分割字串分別獲取檔名和行號。其實可以利用格式化輸入分別獲取檔名字串和行號整數值。2 輸入一條日誌,顯示一次更新的日誌資訊。理解為時迴圈輸入日誌資訊,然後將日...

簡單錯誤記錄

開發乙個簡單錯誤記錄功能小模組,能夠記錄出錯的 所在的檔名稱和行號。處理 1.記錄最多8條錯誤記錄,對相同的錯誤記錄 即檔名稱和行號完全匹配 只記錄一條,錯誤計數增加 檔案所在的目錄不同,檔名和行號相同也要合併 2.超過16個字元的檔名稱,只記錄檔案的最後有效16個字元 如果檔名不同,而只是檔名的後...

c 錯誤記錄

1 warning deprecated conversion from string constant to char wwrite strings char const char linux 環境下當 gcc版本比較高時,編譯 可能出現的問題 問題是這樣產生的,先看這個函式原型 void som...