當我們按照二進制方式往檔案中寫入資料,則将資料在記憶體中的存儲形式原樣輸出到檔案中
計算機檔案基本上分為二種:二進制檔案和 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;
}