[問題] c語言讀檔會當機@@

看板C_and_CPP作者 (辜)時間15年前 (2010/07/13 00:57), 編輯推噓3(306)
留言9則, 5人參與, 最新討論串1/2 (看更多)
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) ( 未必需要依照此格式,文章條理清楚即可 ) 遇到的問題: (題意請描述清楚) 編譯完沒有錯誤但是會當機 希望得到的正確結果: 不會當機並能正確讀檔 程式跑出來的錯誤結果: 跑出dos視窗後會當機 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) VS2008 有問題的code: (請善用置底文標色功能) #include <stdio.h> #include <stdlib.h> char *word; int main() { FILE *FileIn=fopen("111.dat","rb"); if(FileIn==NULL) { printf("開檔錯誤"); exit(1); } while(!feof(FileIn)) { fread(word,sizeof(char),5,FileIn); printf("%s",word); } fclose(FileIn); system("pause"); } 補充說明: 我的需求是去讀取一個二進位的dat檔 所以所使用的語法都是二進位的 不知道用的對不對 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.160.41.196

07/13 00:59, , 1F
word 的空間哪變出來?
07/13 00:59, 1F

07/13 01:01, , 2F
word因為不知道檔案的大小,所以沒有設定,這樣會錯誤嗎
07/13 01:01, 2F

07/13 01:02, , 3F
printf也是個問題 ... 你能保證資料裡一定有'\0' ?
07/13 01:02, 3F

07/13 01:04, , 4F
Try: char word[ sizeof(char)*5 ];
07/13 01:04, 4F

07/13 01:08, , 5F
now大的改法成功了,可以麻煩解釋一下為什麼這樣寫嗎
07/13 01:08, 5F

07/13 01:09, , 6F
= =
07/13 01:09, 6F

07/13 01:10, , 7F
樓上大大別笑我= =
07/13 01:10, 7F

07/13 01:13, , 8F
十誡5 還有三樓的問題也要考慮一下
07/13 01:13, 8F

07/13 01:17, , 9F
OK 收到 謝謝
07/13 01:17, 9F
文章代碼(AID): #1CEqbV8c (C_and_CPP)
文章代碼(AID): #1CEqbV8c (C_and_CPP)