c語言fread
1. c語言:fread問題…
讀出文件的長度,然後根據長度分配一塊連續的內存,把文件讀到這塊內存中,
用一個指針指向這塊內存的首地址,這個指針可以象數組一樣操作。
2. 關於C語言fread的用法
printf("%s",header.bfType);
改成printf("%d",header.bfType);
3. c語言中fread函數怎麼用
c語言中fread函數語法為size_tfread(void*restrictbuffer,size_tsize,size_tcount,FILE*restrictstream)。buffer是指向要讀取的數組中首個對象的指針,size是每個對象的大小(單位是位元組),count是要讀取的對象個數,stream是輸入流。通過fread函數可進行數據讀取,返回成功讀取的對象個數。
(3)c語言fread擴展閱讀:
fread函數從給定輸入流stream讀取最多count個對象到數組buffer中(相當於以對每個對象調用size次fgetc),把buffer當作unsignedchar數組並順序保存結果。流的文件位置指示器前進讀取的位元組數。
若出現錯誤,則流的文件位置指示器的位置不確定。若沒有完整地讀入最後一個元素,則其值不確定,可能小於count。若size或count為零,則fread返回零且不進行其他動作。fread不區分文件尾和錯誤,因此調用者必須用feof和ferror才能判斷發生了什麼。
4. c語言fread函數
是"\0" 因為字元串本身結尾就是有一個"\0" 不是函數添加的 你用strlen函數列印一下長度就知道了
5. c語言 fread的問題
a[i]=b;當然可以,不過用不著。
struct str a[100];
FILE *fp;
int i=0;
while(fread(a+i++,sizeof(struct str),1,fp),!feof(fp));
這樣就行了。
6. 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
7. 求教c語言中關於fread的問題。
我看了你的程序,感覺沒有錯誤~
然後我運行了一下~
如圖所示~也是好的~~~
你嘗試用下fseek(fp,0,SEEK_SET);
再試試看吧~
8. c語言fread()
修正後的代碼
#include "stdlib.h"
#include<stdio.h>
struct ty { char a[11];
char b[100]; };struct ty m
[200];int main(){ int i,j=1,t=0;
char sr[11];
FILE *fp;if((fp=fopen
("/mnt/sdcard/kk.txt","r"))==0) { printf
("不能打開\n"); exit(0);}printf("輸入函數名:
\n");gets(sr);while(!feof(fp))
{ fread(&m[t],sizeof(struct
ty),1,fp); i=strstr(m[t].a,sr);
if(i){ printf("%.11s \n\nvvvvvv\n\n%.100s\n",m[t].a,m
[t].b); j=0;t++;}/*如果不加數量%.11s .100限制,printf函數會把結構體裡面的字元從開端0到200全部輸出。還有t的值一直是0那麼將會永遠從文件開頭輸出數據。所以t++*/
}if(j){ printf("沒有找到!");}
fclose(fp);getchar(); getchar();}
上面的方法我覺得不好
我認為你應該從文件中續個讀取字元並存儲到數組i[10000]中,然後再從該數組中查找數據。
9. C語言中如何使用fread
FILE * fp = open("D:A.txt", "r"); 先用文件指針獲得文件的地址;
char ch = 0; 定義一個字元變數來獲得從文件中讀取的一個字元;
fread(&ch, sizeof(char), 1, fp); 格式如左;
10. c語言循環中fread如何讀取文件
#include<stdio.h>
#include<stdlib.h>
intmain()
{
intnumber[400],i;
FILE*fp;
fp=fopen("number.dat","r");
for(i=0;i<400;i+=100)
fread(number+i,sizeof(int),100,fp);
}