Ⅰ c語言中如何使用fread
FILE * fp = open("D:A.txt", "r"); 先用文件指針獲得文件的地址;
char ch = 0; 定義一個字元變數來獲得從文件中讀取的一個字元;
fread(&ch, sizeof(char), 1, fp); 格式如左;
Ⅱ 請教C語言<stdio.h>頭文件下的fread()函數的用法,結合一個簡單的例子加上一些解釋。
函數原型
size_t fread ( void *buffer, size_t size, size_t count, FILE *stream) ;
參 數
buffer
用於接收數據的內存地址
size
要讀寫的位元組數,單位是位元組
count
要進行讀寫多少個size位元組的數據項,每個元素是count位元組.
stream
輸入流
#include<stdio.h>
#include<string.h>
int main(void)
{
FILE*stream;
char msg[]="thisisatest";
char buf[20];
if((stream=fopen("DUMMY.FIL","w+"))==NULL)
{
fprintf(stderr,"Cannotopenoutputfile.\n");
return 0;
}
/*writesomedatatothefile*/
fwrite(msg,1,strlen(msg)+1,stream);
/*sizeof(char)=1seektothebeginningofthefile*/
fseek(stream,0,SEEK_SET);
/*readthedataanddisplayit*/
fread(buf,strlen(msg)+1,1,stream);
printf("%s\n",buf);
fclose(stream);
return0;
}
Ⅲ fread函數的用法
fread函數可從文件中讀取二進制數據
語法:
A = fread(fid, count)
A = fread(fid, count, precision)
其中fid為指針所指文件中的當前位置,count指讀取的數據個數, precision表示以什麼格式的數據類型讀取數據。
例子:
fid = fopen('alphabet.txt', 'r');
c = fread(fid, 5)'
c =
65 66 67 68 69
fclose(fid);
程序說明:alphabet文件中按順序存儲著26個英文字母,讀取文件之前要先打開文件,由於未指定讀取數據的類型,所以程序指定默認類型為無符號字元型即uchar,65、66、67、68、69代表A、B、C、D、E,文件用完還要記得關閉文件,以便釋放指針。
(3)c語言fread的用法擴展閱讀:
用 法
int feof(FILE *stream);
參數
流 :FILE結構的指針
注意:feof判斷文件結束是通過讀取函數fread/fscanf等返回錯誤來識別的,故而判斷文件是否結束應該是在讀取函數之後進行判斷。比如,在while循環讀取一個文件時,如果是在讀取函數之前進行判斷,則如果文件最後一行是空白行,可能會造成內存錯誤。
參考資料:
fread--網路
Ⅳ C語言 fread函數
如果你想把這8個位元組當成一個數來讀的話可以這樣(在VC環境下)
__int64 a;
fread(&a,sizeof(__int64),1,fp);
如果你想分別讀出這8個位元組的話,可以這樣:
char a[8];
fread(a,sizeof(char),8,fp);
希望對你有幫助
__int64也可以用來表示一個整數,只不過它能表示的范圍比int類型的要大,int類型佔4個位元組,而這個__int64佔8個位元組。如果你用的是gcc編譯器(像DEV-C等),那應該是long long
Ⅳ c語言fread函數
是"\0" 因為字元串本身結尾就是有一個"\0" 不是函數添加的 你用strlen函數列印一下長度就知道了
Ⅵ c語言 fread函數
fread()函數以及所有的文件讀寫函數都是這樣,不過這里的「下一個字元」不太准確,應該用「下一個位元組」。
Ⅶ C語言關於fread這個函數的問題
因為你的數組a沒有進行正確的初始化。
可以這樣定義
char a[32]={0};
========補充======
哦,你的數組定義的太小了,讀取的內容是32你的數組也是32,沒有位置放置字元串結束符號\0(值為0)。你把數組大小改為33就ok了
Ⅷ c語言中關於fread()函數的疑問
fread是按二進制讀取文件,得自己處理換行。
fgets是按文本文件讀取文件,換行符放在你申請的空間里,尾部保留換行符。
打開文件時記得選擇按文本還是二進制打開。
Ⅸ C語言的fread函數
建議你用C++文件流
ifstream fin ( "123.in") ;
ofstream fout ( "123.out") ;
int i , j ; char a[100] ;
fin >> i >> j >> a ;
fout << a << i << j ;
如果不知道就用格式化讀寫
fscanf ( "輸出表項",&輸入表項....);
Ⅹ 關於C語言fread的用法
printf("%s",header.bfType);
改成printf("%d",header.bfType);