当前位置:首页 » 编程语言 » c语言fread的用法
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言fread的用法

发布时间: 2022-02-13 09:30:52

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