1. 程式人生 > >檔案操作使用的函式(下)

檔案操作使用的函式(下)

拷貝檔案函式包含了很多檔案操作的函式。參考程式碼理解函式如何使用。

#include< stdio.h>
#include<stdlib.h>
#include< string.h>
int main()
{
	FILE *fp_from = NULL;//定義檔案指標
	fopen_s(&fp_from, "from.txt", "w+");
	FILE *fp_to = NULL;
	fopen_s(&fp_to, "to.txt", "w+");

	int len;//獲取檔案長度
	char*ch = NULL;//快取buffer

	if ((fp_from ) == NULL)//開啟原始檔,注意這句話中的括號,“==”的右邊要用括號括起來
	{
		printf("open from file error!\n");
		exit(0);
	}
	else
	{
		printf("open from file?successfully!\n?prepareto?write...\n");
	}
	fwrite("hello the world", 1, strlen("hello the world"), fp_from);//將一個字串寫入原始檔中
	printf("write successfully!\n\n");

	fflush(fp_from);//重新整理檔案
	if ((fp_to) == NULL)//開啟目標檔案
	{
		printf("open write file error!");
		exit(0);
	}
	else
	{
		printf("open?write file successfully!\n");
	}
	len = ftell(fp_from);//獲取原始檔長度

	ch = (char *)malloc(sizeof(char*)*(len)); //動態分配陣列長度

	//memset(ch, 0, len); //清零,否則無法將內容寫入!!!

	rewind(fp_from);//將原始檔指標復位到開頭,否則寫入為空!
	fread(ch, 1, len, fp_from);//將原始檔內容寫到buffer中
	fwrite(ch, 1, len, fp_to); //將buffer中的內容寫回到目標檔案中
	printf("copy?successfully!\n");
	fclose(fp_from);//關閉檔案
	fclose(fp_to);
	return 0;
}