本帖最後由 李泳霖 於 2022-6-6 17:18 編輯
http://www2.lssh.tp.edu.tw/~hlf/class-1/lang-c/c_file.htm
設計說明:
1.輸入姓名與分數,當分數為-100時,程式將結束讀取動作。
2. 修改程式碼片段中的程式語法、邏輯上的錯誤,執行結果如範例圖。
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- int main ()
- {
- FILE *fptr;
- char name[20];
- int score;
- fptr=fopen("score.dat", "w");
- printf("請輸入姓名: ");
- scanf("%s", name);
- printf("請輸入分數: ");
- scanf("%d", &score);
-
- while (score != -100) {
- fprintf("%s %d", name, score);
- printf("請輸入姓名: ");
- scanf("%s", name);
- printf("請輸入分數: ");
- scanf("%d", &score);
- }
-
- fclose(fptr);
-
- fptr=fopen("score.dat", "r");
- printf("\n以下是您輸入的資料:\n");
- while (fscanf("%s %d", name, score) !=EOF)
- {
- printf("%-10s %3d\n", name, score);
- }
- system("PAUSE");
- return 0;
- }
複製代碼- /* TQC+ C - 610 */
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- int main ()
- {
- FILE *fptr;
- char name[20];
- int score;
- fptr=fopen("score.dat", "w");
- printf("請輸入姓名: ");
- scanf("%s", name);
- printf("請輸入分數: ");
- scanf("%d", &score);
- while (score != -100) {
- fprintf(fptr,"%s %d", name, score);
- /* 做有關檔案讀取時,參數的第一個通常需要先告知檔案的指標 */
- printf("請輸入姓名: ");
- scanf("%s", name);
- printf("請輸入分數: ");
- scanf("%d", &score);
- }
- fclose(fptr);
- fptr=fopen("score.dat", "r");
- printf("\n以下是您輸入的資料:\n");
- while (fscanf(fptr,"%s %d", name, &score) !=EOF)//加上檔案指標,score前加上&
- printf("%-10s %3d\n", name, score);
- system("PAUSE");
- return 0;
- }
複製代碼 |