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);
}