2010年7月20日 星期二

檔案讀寫 fread()/ fwrite() (C/C++)

對於程式中檔案的讀寫,算是滿常用的。但偶爾會忘了~~而需要找答案與範例。我列了幾個範例給大家參考,就可以很快上手嘍唷!^^

/**************************************
示範教學:fread() and fwrite() 用法
*************************************/
#include (stdio.h) <===== 由於顯示問題>< 請記得將()號改成<>號哦~~ 別忘了!
#include (stdlib.h)
#define BUFFER_SIZE 65536
int main(int argc, char *argv[])
{
FILE *fp,*copy;
char *buf;
size_t ret;

if(argc!=2)
{
printf("直接把檔案拖曳到此程式。\n指令用法:此程式檔名稱 要複製的檔案名稱\n");
system("pause");
}
else
{
printf("複製中...");
fp=fopen(argc[argv-1],"rb");
copy=fopen("C:\\copy","wb");
buf = (char *)malloc(BUFFER_SIZE); //動態配置記憶體給Array
ret = fread(buf, 1, BUFFER_SIZE, fp); // fread回傳讀取的byte數
while(ret > 0)
{
fwrite(buf, 1, ret, copy);
ret = fread(buf, 1, BUFFER_SIZE, fp);
}
free(buf);
fclose(fp);
fclose(copy);
}
return 0;
}

/*
fread跟fwrite用在binary檔
fscanf跟fprintf用在文字檔

fread(buf, size, count, fp);
buf是output的地方(Array).
size是一組的大小
count是要讀幾組
fp是檔案指標.

這fread()最多會讀取size*count個bytes.
*/
=================================================

沒有留言: