亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

fread函數該如何運用呢?求高手指點一下?

fread函數該如何運用呢?求高手指點一下?

C C#
浮云間 2021-10-21 14:10:29
有一個二進制文件,我想把里面的一個八個字節的數讀出來(其實就是1)然后我建立一個int a[];數組,然后調用fread(a,8,1,fp);fp是對應打開文件的指針,怎么就沒讀進去呢?我把數組改成double 后再讀,就能讀進去了,可是讀的不是1,是一個接近0的小數,我就崩潰了,我的問題是,第二個參數,跟第一個參數有關系嗎?八個字節的數到底怎么才能讀出來?跪求高手解答!
查看完整描述

3 回答

?
縹緲止盈

TA貢獻2041條經驗 獲得超4個贊

c語言中fread函數語法為size_t?fread(?void?*restrict?buffer,?size_t?size,?size_t?count,?FILE?*restrict?stream?)。buffer是指向要讀取的數組中首個對象的指針,size是每個對象的大?。▎挝皇亲止潱?,count是要讀取的對象個數,stream是輸入流。通過fread函數可進行數據讀取,返回成功讀取的對象個數。


查看完整回答
反對 回復 2021-10-24
?
慕慕森

TA貢獻1856條經驗 獲得超17個贊

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,文件用完還要記得關閉文件,以便釋放指針。


查看完整回答
反對 回復 2021-10-24
?
人到中年有點甜

TA貢獻1895條經驗 獲得超7個贊

1、C語言中:fread是一個函數。從一個文件流中讀數據,最多讀取count個元素,每個元素size字節,如果調用成功返回實際讀取到的元素個數,如果不成功或讀到文件末尾返回 0。
函數原型:size_t fread ( void *buffer, size_t size, size_t count, FILE *stream) ;
參數:
buffer  用于接收數據的內存地址
size  要讀的每個數據項的字節數,單位是字節
count  要讀數據項的個數,每個數據項size個字節.
stream  輸入流的指針
返回值:
返回實際讀取的元素個數。如果返回值與count不相同,則可能文件結尾或發生錯誤。從ferror和feof獲取錯誤信息或檢測是否到達文件結尾。
2、例程:


#include<stdio.h>#include<string.h>int main(void){    FILE*stream;    char msg[]="this is a test";    char buf[20];    if((stream=fopen("DUMMY.FIL","w+"))==NULL)    {        fprintf(stderr,"Cannot open outputfile.\n");        return 0;    }    fwrite(msg,1,strlen(msg)+1,stream);    fseek(stream,0,SEEK_SET);    fread(buf,strlen(msg)+1,1,stream);    printf("%s\n",buf);    fclose(stream);    return0;}



查看完整回答
反對 回復 2021-10-24
  • 3 回答
  • 0 關注
  • 524 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號