作者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