網站聲明

本網站包含了各式各樣的資源,如果有侵占到您的著作權,請與本人通知,本人會立即改進。本站所有發表僅屬研究討論性質,如果有任何後果請自行負責。

2014-06-19

TQC+ C 其他論題 904 成績檔讀寫

904.
設計說明:

1. 開啟CPD09-1.c,利用 fscanf()函數,將下列學生的姓名及對應的C語言分數,寫入專案資料夾下的 score.dat檔案。
2. 可利用某個條件,讓寫入的動作結束,如當分數入為負的分數時,則結束寫入的動作。
3. 資料樣本如下:
    請輸入學生的姓名(分數輸入負分時結束):Peter
    此學生C語言分數:90
    請輸入學生的姓名(分數輸入負分時結束):Mary
    此學生C語言分數:80
    請輸入學生的姓名(分數輸入負分時結束):Nancy
    此學生C語言分數:88
    請輸入學生的姓名(分數輸入負分時結束):John
    此學生C語言分數:-2
4. 開啟CPD09-2.c,將專案目錄資料夾下score.dat檔案內容,利用 fscanf()函數將其讀出,再以 printf()印出。
5. 執行結果如範例圖。

CPA09-1.c
CPA09-2.c

參考程式碼:
CPA09-1.c
  1. #include<stdlib.h>
  2. #include<stdio.h>
  3. int main(){
  4.  FILE *fi;
  5.  char name[20];
  6.  int score;
  7.  fi=fopen("score.dat", "w");
  8.  do{
  9.   printf("請輸入學生的姓名(分數輸入負的分數時結束):");
  10.   scanf("%s",&name);
  11.   printf("請輸入此學生C語言分數:");
  12.   scanf("%d",&score);
  13.   if (score>=0)
  14.    fprintf(fi,"%s %d",name,score);
  15.  }while(score>=0);
  16.  fclose(fi);
  17.  system("PAUSE");
  18.  return 0;
  19. }
CPA09-2.c
  1. #include<stdlib.h>
  2. #include<stdio.h>
  3. int main(){
  4.  FILE *fi;
  5.  char name[20];
  6.  int score;
  7.  fi=fopen("score.dat", "r");
  8.  while(fscanf(fi,"%s %d",name,&score)!=EOF)
  9.   printf("%s的C語言分數是%d\n",name,score);
  10.  fclose(fi);
  11.  system("PAUSE");
  12.  return 0;
  13. }

TQC+ C 試題總整理

聲明:

這裡的範例程式碼皆由本人親自編輯,歡迎轉載本教學,但請註明本網站,尊重一下作者的心血

1 則留言:

歡迎留言,較舊文章需要留言審核看不到自己的留言是正常的。
若長時間無回應請使用以下聯絡方式:
填寫表單:https://forms.gle/hxxX9n4tATcFnhnk8
寄信到:happyplayblogs@gmail.com