開發乙個簡單錯誤記錄功能小模組,能夠記錄出錯的**所在的檔名稱和行號。
處理:1、 記錄最多8條錯誤記錄,迴圈記錄,最後只用輸出最後出現的八條錯誤記錄。對相同的錯誤記錄只記錄一條,但是錯誤計數增加。最後乙個斜槓後面的帶字尾名的部分(保留最後16位)和行號完全匹配的記錄才做算是」相同「的錯誤記錄。
2、 超過16個字元的檔名稱,只記錄檔案的最後有效16個字元;
3、 輸入的檔案可能帶路徑,記錄檔名稱不能帶路徑。
4、迴圈記錄時,只以第一次出現的順序為準,後面重複的不會更新它的出現時間,仍以第一次為準
#include #include #include typedef struct s_errlog
errlog;
typedef struct s_errnode
errnode;
void dealerrlog(errnode * errlist,errnode * tail, char *filename,int errline)
}ptempnode=ptempnode->next;
}//printf("6\n");
int count = 0;
if(ptempnode==null)
errnode * newnode = (errnode *)malloc(sizeof(errnode));
errlog * newlog = (errlog *)malloc(sizeof(errlog));
strcpy(newlog->filename,filename);
newlog->errline = errline;
newlog->errcount = 1;
newnode->log = newlog;
newnode->next = null;
ptempnode->next = newnode;
newnode->prev = ptempnode;
tail = newnode;
//printf("7 %s\n",filename);
//if(count>=8)
////printf("4 %s\n",filename);
return;
}};int main()
; int inputline;
errnode * errlist= (errnode *)malloc(sizeof(errnode));
errlist->next = null;
errlist->log = null;
errlist->prev = null;
errnode * ptail = errlist;
while(scanf("%s %d",inputfile,&inputline)!=eof)
;strcpy(filename,p);
//printf("1-%s dd",filename);
dealerrlog(errlist,ptail,filename,inputline);
}errnode * pnexterrnode = errlist->next;
//errnode * ppreverrnode = ptail;
int count = 0;
while(pnexterrnode!=null)
pnexterrnode = pnexterrnode->next;
}if(count > 0)
pnexterrnode = pnexterrnode->next;
}int j = 0;
if(count>8)
j = count - 8;
for(;j}
return 0;
}
C C 遇到錯誤記錄
參考文章 解決方案 include 改為 includeusing namespace std includeusing namespace std void main void int min int x,int y int min if x解決方案 system pause 主函式中倒數第二行或...
簡單錯誤記錄
使用了部落格的 設計思路。這裡主要記錄一下在處理這一題時自己理解錯的地方 1 需要從輸入的日誌資訊中提取檔名和行號。如果這樣想這個問題,那麼需要分割字串分別獲取檔名和行號。其實可以利用格式化輸入分別獲取檔名字串和行號整數值。2 輸入一條日誌,顯示一次更新的日誌資訊。理解為時迴圈輸入日誌資訊,然後將日...
簡單錯誤記錄
開發乙個簡單錯誤記錄功能小模組,能夠記錄出錯的 所在的檔名稱和行號。處理 1.記錄最多8條錯誤記錄,對相同的錯誤記錄 即檔名稱和行號完全匹配 只記錄一條,錯誤計數增加 檔案所在的目錄不同,檔名和行號相同也要合併 2.超過16個字元的檔名稱,只記錄檔案的最後有效16個字元 如果檔名不同,而只是檔名的後...