C C 程式設計題之簡單錯誤記錄

2021-10-12 09:39:17 字數 1894 閱讀 3952

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

處理: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個字元 如果檔名不同,而只是檔名的後...