如圖:html
代碼以下:java
#include <stdio.h> void main() { int i,n; char buf[500]; FILE *fp; if((fp=fopen("test.txt","rt"))==NULL) { printf("cannot open file\n"); return; } for(i=0;i<10;i++){ fscanf(fp,"%[^\n]%*c",buf); printf("%s\n", buf); } fclose(fp); }
Linux下運行截圖:git
代碼以下:安全
#include <stdio.h> void main() { int i,n; char buf[500]; FILE *fp; int num=0; if((fp = fopen("test.txt","rt")) == NULL) { perror("fail to read"); return; } while(fgets(buf,500,fp) != NULL) { num++; } rewind(fp); n=num-10; for(i=0;i<n;i++) { fscanf(fp,"%*[^\n]%*c"); } for(i=n;i<num;i++) { fscanf(fp,"%[^\n]%*c",buf); printf("%s\n",buf); } fclose(fp); }
Linux下運行截圖:學習
#include <stdio.h> void main() { int i,n; char buf[500]; FILE *fp; int num=0; if((fp = fopen("test.txt","rt")) == NULL) { perror("fail to read"); return; } while(fgets(buf,500,fp) != NULL) { num++; } n=num-10; for(i=n;i<num;i++) { fscanf(fp,"%[^\n]%*c",buf); printf("%s\n",buf); } fclose(fp); }
時,最後一行重複輸出10次,並無實現tail命令輸出後10行的功能。.net
rewind(fp);
將指針移動到文件開頭。#include <stdio.h> void main() { int i,n; char buf[500]; FILE *fp; int num=0; if((fp = fopen("test.txt","rt")) == NULL) { perror("fail to read"); return; } while(fgets(buf,500,fp) != NULL) { num++; } rewind(fp); n=num-10; for(i=n;i<num;i++) { fscanf(fp,"%[^\n]%*c",buf); printf("%s\n",buf); } fclose(fp); }
本覺得不會再出現問題,怎料此時輸出的是前10行的內容。設計
for(i=0;i<n;i++) { fscanf(fp,"%*[^\n]%*c"); }
將後10行以前的內容所有跳過,就能夠輸出後10行的內容了。指針
教材學習中的問題和解決過程, 一個問題加1分調試
代碼調試中的問題和解決過程, 一個問題加1分日誌
基於評分標準,我給本博客打分:XX分。得分狀況以下:xxx
由於十一期間的任務沒有按時完成,因此這周累積的任務特別多,學習效果相應特別差,學習任務完成狀況也很糟糕,之後應該吸收教訓,作到今日事,今日畢。
代碼行數(新增/累積) | 博客量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
---|---|---|---|---|
目標 | 5000行 | 30篇 | 400小時 | |
第一週 | 10/10 | 1/1 | 10 /10 | |
第二週 | 80/90 | 1/2 | 15/25 | |
第三週 | 100/190 | 1/3 | 15/40 | |
第四周 | 150/340 | 1/4 | 18/58 |
嘗試一下記錄「計劃學習時間」和「實際學習時間」,到期末看看能不能改進本身的計劃能力。這個工做學習中很重要,也頗有用。
耗時估計的公式
:Y=X+X/N ,Y=X-X/N,訓練次數多了,X、Y就接近了。
計劃學習時間:30小時
實際學習時間:18小時
改進狀況:
(有空多看看現代軟件工程 課件
軟件工程師能力自我評價表)