作者drey (drey)
看板C_and_CPP
標題[語法]檔案的讀取 我這樣哪裡寫錯了呢 謝謝
時間Mon Apr 27 21:46:32 2009
不好意思打擾了
我想讀取一個筆記本寫的檔案
筆記本內容我是打 小明 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
推 VictorTom:1. fread是從file以binary型式讀進來, 可是你的data是 04/27 23:34
→ VictorTom:ASCII文字, 這邊也許要用fscanf試試; 另外我不確定中文 04/27 23:35
→ VictorTom:字會被怎麼處理, 除非有wchar.... 04/27 23:35
→ VictorTom:2. 因為你寫的是console程式, 你開DOS模式跑所有結果就 04/27 23:36
→ VictorTom:會留在DOS畫面上, 但如果你在Windows下跑, DOS程式只會 04/27 23:36
→ VictorTom:在程式還在執行時維持DOS視窗, 一執行完視窗就自己被關 04/27 23:36
→ VictorTom:了; 加 system("PAUSE"); 就是讓DOS視窗秀出一段訊息 04/27 23:37
→ VictorTom:"Press Any Key to Continue"之類的, 其實"PAUSE"是一個 04/27 23:37
→ VictorTom:DOS指令, system()只是幫你簡單的調用DOS/console指令. 04/27 23:38
推 VictorTom:喵的~~以後要是predict會推五行以上應該直接用回文的Orz 04/27 23:41