作者averangeall (洗髮精用完了)
看板b97902HW
標題Re: [問題] 檔案處理的函示
時間Sat Dec 6 13:37:56 2008
在下有點弱
可是最近想去八卦板玩 苦於文章數不足
就來發文解釋
如果有錯 請各位強者指正 不好意思
fwrite
總之這是一個把東西寫進檔案的函式
語法 fwrite(A, B, C, D);
A 的地方 你要填入一個位址 就是你要印什麼東西 就放進去
B 的話 你要填 你印的時候 印一個單位有多大 通常會用 sizeof() 放進去
C 的地方 你要填你要印幾個單位
D 的地方 你要填那個 FILE 型態的那個 就是寫檔案的磁頭那個
大概就這樣 然後舉個例
char out[] = {'Y', 'O', 'U', '\'', 'R', 'E', ' ', 'D', 'E', 'A', 'D'};
FILE *fw;
fw = fopen("test.txt", "wb");
fwrite(out, sizeof(char), 11, fw);
這樣就會輸出一個叫 test.txt 的檔案
裡面內容是 YOU'RE DEAD
fread
這是一個讀檔案內容的函式
而格式和之前一模一樣
只是一個是輸出去 一個是讀進來
看個例子就懂了
char in[100];
FILE *fr;
fr = fopen("test.txt", "rb");
fread(in, sizeof(char), 5, fr);
這就是把剛剛的 test.txt 前 5 個字讀進來 就是 YOU'RE
fseek
這是在調整那個讀寫的磁頭的
就是說可以把它移來移去
語法是這樣
fseek(A, B, C);
A 是說 就是填你要移動的那個磁頭
B 的話 是要調多少格 如果是一個正數的話 就會往後調 負數反之
C 的話 有三個選擇可以填: SEEK_SET SEEK_END SEEK_CUR
↑ ↑ ↑
從頭找 從尾巴找 從磁頭目前的位置開始找
當然 從頭找的話 B 就不能填負數 而從尾巴找的話 B 就不能填正數啦
舉個例
char in;
FILE *fr;
fr = fopen("test.txt", "rb");
fread(&in, sizeof(char), 1, fr);
printf("%c\n", in);
fseek(fr, 3, SEEK_CUR);
fread(&in, sizeof(char), 1, fr);
printf("%c\n", in);
那個 test.txt 還是剛剛的那個檔
然後這個程式會在螢幕上輸出這個的檔第 1 和第 4 個字 也就是 Y 和 R
在下講完了
如果其中有什麼錯的話
請各位高手指正
謝謝大家
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.240.35
1F:推 vdm9999:神!神!神!神!神!神!神!神!神!神!神!神!神!神!神!神!神!神! 12/06 13:42
2F:推 tempTTP1:太感謝了,不過"'"也算一個字吧? 12/06 13:49
3F:→ averangeall:應該對啊 怎麼了 12/06 13:54
4F:推 tempTTP1:第四個字就是"'"吧? 12/06 14:29
5F:→ averangeall:是的 12/06 14:33
6F:推 tempTTP1:謝謝囉! 12/06 14:37
7F:推 jyt0532:自均實在是太發了 12/06 14:54
8F:→ averangeall:不...絕對不發... 12/06 18:31
9F:推 louis719:太強大了.. 12/06 21:10
10F:推 benck:有神快拜 12/06 23:10
11F:→ purplebleed:說的好~~~~~強者自均你救了我耶~~~~~ 12/06 23:28
12F:→ benck:自均救了我耶 12/06 23:34
13F:推 ldldldldldld:書卷自均!!!!!!!! 12/07 15:13
14F:→ averangeall:樓上有點要不得...我都這麼可憐了 12/07 16:40