fread函數詳解

函數原型:
size_t   fread(   void   *buffer,   size_t   size,   size_t   count,   FILE   *stream   ) 
  buffer   是讀取的數據存放的內存的指針(能夠是數組,也能夠是新開闢的空間,buffer就是一個索引)   
    size       是每次讀取的字節數  
  count     是讀取次數  
  strean   是要讀取的文件的指針  

  例如   從文件fp裏讀取100個字節   可用如下語句  
   
  fread(buffer,100,1,fp)  
  fread(buffer,50,2,fp)  
  fread(buffer,1,100,fp)   
**************************************************************************************    
對讀出的二進制流是不能用strlen()或者sizeof()求其長度和大小的。
**************************************************************************************

fread能夠讀二進制文件,有時用字符方式去讀文件不能讀完整個文件,可是二進制方式就能夠 。
這就是由於字符方式用特定的標記結尾的,讀取時只要碰到該標記就自動結束

函數fread()讀取[num]個對象(每一個對象大小爲size(大小)指定的字節數),並把它們替換到由buffer(緩衝區)指定的數組. 數據來自給出的輸入流. 函數的返回值是讀取的內容數量... 數組

使用feof()或ferror()判斷到底發生哪一個錯誤. 函數

上一段代碼:spa

void HelpMassage()
{
	FILE *fp;
	int size = 0;
	char *ar ;

	//二進制方式打開文件
	fp = fopen("lining.txt","rb");
	if(NULL == fp)
	{
		printf("Error:Open input.c file fail!\n");
		return;
	}

	//求得文件的大小
	fseek(fp, 0, SEEK_END);
	size = ftell(fp);
	rewind(fp);

	//申請一塊能裝下整個文件的空間
	ar = (char*)malloc(sizeof(char)*size);

	//讀文件
	fread(ar,1,size,fp);//每次讀一個,共讀size次

	printf("%s",ar);
	fclose(fp);
	free(ar);

	printf("按任意鍵繼續");
	getchar();
	getchar();
}
相關文章
相關標籤/搜索