天天看點

c語言讀寫檔案fopen和fopen

當我們按照二進制方式往檔案中寫入資料,則将資料在記憶體中的存儲形式原樣輸出到檔案中

計算機檔案基本上分為二種:二進制檔案和 ASCII(也稱純文字檔案),圖形檔案及文字處理程式等計算機程式都屬于二進制檔案。這些檔案含有特殊的格式及計算機代碼。ASCII 則是可以用任何文字處理程式閱讀的簡單文本檔案。

#include <stdio.h>
#include <string.h>
#include <malloc.h>
#include <stdlib.h>


int main (void)
{
	
	//fwrite寫入檔案
	FILE * pfile=fopen("1.txt","wb");
	fwrite("我是你的大皇冠",1,strlen("我是你的大皇冠")+1,pfile);
	fseek(pfile,0,SEEK_SET);
	fwrite("哈哈",1,strlen("哈哈"),pfile);
	//fflush(pfile);
	fclose(pfile);


	//fread讀取檔案
	pfile=fopen("1.txt","rb");
	//檔案指針移到到檔案未擷取檔案長度
	fseek(pfile,0,SEEK_END);
	int len=ftell(pfile);
	//配置設定記憶體空間,檔案指針移到到檔案頭開始讀取
	char *szText=(char*)malloc(len+1);
	fseek(pfile,0,SEEK_SET); //rewind(pfile);
	fread(szText,1,len,pfile);
	printf("%s\n",szText);
	fclose(pfile);
	free(szText);

	//98341例子
	int a=98341;
	char szTemp[100]={0};
	int r=10; //10進制轉換
	itoa(a,szTemp,r);
	

	return 0;
}
/*
2015年4月1日1:05:28
程式執行結果如下
哈哈你的大皇冠
請按任意鍵繼續. . .
*/
           

unicode文本編碼

#include <stdio.h>
#include <stddef.h>
#include <stdlib.h>
#include <wchar.h>
#include <tchar.h>
#include <windows.h>


int main(void)
{
	wchar_t str[100]=TEXT("我是你的大皇冠hello world!");
	size_t  strSize=NULL;
	FILE*   fileHandle=NULL;

	if ((fileHandle = _wfopen(TEXT("1.txt"),TEXT("wb,ccs=UNICODE"))) == NULL) // C4996
	{
		wprintf(L"_wfopen failed!\n");
		return(0);
	}

	strSize = _tcslen(str);
	if (fwrite(str, sizeof(wchar_t), strSize, fileHandle) != strSize)
	{
		wprintf(L"fwrite failed!\n");
	}

	if (fclose(fileHandle))
	{
		wprintf(L"fclose failed!\n");
	}
	return 0;
}