[語法]檔案的讀取 我這樣哪裡寫錯了呢 謝謝

看板C_and_CPP (C/C++)作者 (drey)時間16年前 (2009/04/27 21:46), 編輯推噓2(208)
留言10則, 1人參與, 最新討論串1/1
不好意思打擾了 我想讀取一個筆記本寫的檔案 筆記本內容我是打 小明 80 90 這樣 但不知道為什麼 程式直接就跳出去了 編譯器編譯沒有error 我也不知道錯在哪 麻煩大家幫我看一下 謝謝 #include<stdio.h> #include<stdlib.h> struct record { char name[10]; int midterm; int final; }; typedef struct record student; main() { FILE *fp; student std; char filename[30]="student_score.txt"; fp = fopen("student_score.txt", "r+"); if(fp !=NULL) { while(!feof(fp)) { if(fread(&std,sizeof(std),1,fp)) { printf("%s\n",std.name); printf("%d\n",std.midterm); printf("%d\n",std.final); } } fclose(fp); } system("pause"); return 0; } 再請問大家一個問題 有些時候,我要是沒打system("pause"); 程式很快就跳出,沒看到執行的結果 請問這是什麼問題呢? 謝謝 感激不盡 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.117.9.179

04/27 23:34, , 1F
1. fread是從file以binary型式讀進來, 可是你的data是
04/27 23:34, 1F

04/27 23:35, , 2F
ASCII文字, 這邊也許要用fscanf試試; 另外我不確定中文
04/27 23:35, 2F

04/27 23:35, , 3F
字會被怎麼處理, 除非有wchar....
04/27 23:35, 3F

04/27 23:36, , 4F
2. 因為你寫的是console程式, 你開DOS模式跑所有結果就
04/27 23:36, 4F

04/27 23:36, , 5F
會留在DOS畫面上, 但如果你在Windows下跑, DOS程式只會
04/27 23:36, 5F

04/27 23:36, , 6F
在程式還在執行時維持DOS視窗, 一執行完視窗就自己被關
04/27 23:36, 6F

04/27 23:37, , 7F
了; 加 system("PAUSE"); 就是讓DOS視窗秀出一段訊息
04/27 23:37, 7F

04/27 23:37, , 8F
"Press Any Key to Continue"之類的, 其實"PAUSE"是一個
04/27 23:37, 8F

04/27 23:38, , 9F
DOS指令, system()只是幫你簡單的調用DOS/console指令.
04/27 23:38, 9F

04/27 23:41, , 10F
喵的~~以後要是predict會推五行以上應該直接用回文的Orz
04/27 23:41, 10F
文章代碼(AID): #19zRSv1i (C_and_CPP)
文章代碼(AID): #19zRSv1i (C_and_CPP)