关于C语言fread的用法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于C语言fread的用法相关的知识,希望对你有一定的参考价值。
简介fread
功
能:
从一个流中读数据
函数原型:
size_t
fread(
void
*buffer,
size_t
size,
size_t
count,
file
*stream
);
参
数:
1.用于接收数据的地址(指针)(buffer)
2.单个元素的大小(size)
:单位是字节而不是位,例如读取一个整型数就是2个字节
3.元素个数(count)
4.提供数据的文件指针(stream)
返回值:成功读取的元素个数
程序例
#include
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
output
file.\n");
return
1;
/*
write
some
data
to
the
file
*/
fwrite(msg,
strlen(msg)+1,
1,
stream);
/*
seek
to
the
beginning
of
the
file
*/
fseek(stream,
0,
seek_set);
/*
read
the
data
and
display
it
*/
fread(buf,
strlen(msg)+1,
1,stream);
printf("%s\n",
buf);
fclose(stream);
return
0;
参考技术A scanf("%s",&filepath);
这一句就错了。应为scanf("%s",filepath);
数组名就是其地址。
先把这里改正了再说吧。
fread()的第一个参数应该是数组。你的不是。
你的是WORD,实际是short,但你却用%s输出。建议
改
typedef
struct
tagBITMAPFILEHEADER
WORD
bfType;
为
BYTE
bfType[100];
c语言中fgets 、fputs、fread、fscanf、fseek的区别和作用
fread:是读取数据fwrite:是写入数据
1.函数功能
用来读写一个数据块。
2.一般调用形式
fread(buffer,size,count,fp);
fwrite(buffer,size,count,fp);
3.说明
(1)buffer:是一个指针,对fread来说,它是读入数据的存放地址。对fwrite来说,是要输出数据的地址。
(2)size:要读写的字节数;
(3)count:要进行读写多少个size字节的数据项;
(4)fp:文件型指针。
注意:1
完成次写操(fwrite())作后必须关闭流(fclose());
2
完成一次读操作(fread())后,如果没有关闭流(fclose()),则指针(file
*
fp)自动向后移动前一次读写的长度,不关闭流继续下一次读操作则接着上次的输出继续输出;
3
fprintf()
:
按格式输入到流,其原型是int
fprintf(file
*stream,
const
char
*format[,
argument,
...]);其用法和printf()相同,不过不是写到控制台,而是写到流罢了。注意的是返回值为此次操作写入到文件的字节数。如int
c
=
fprintf(fp,
"%s
%s
%d
%f",
str1,str2,
a,
b)
;str1:10字节;str2:
10字节;a:2字节;b:8字节,c为33,因为写入时不同的数据间自动加入一个空格。
4.fscanf
和
scanf
相似
:当能正常读入数据时,
fscanf
返回读入数据的个数,否则返回
eof
。 参考技术A fgets()从文件读取一个字符串
fputs()将一个字符串输出到文件
fread()从文件以二进制方式读取数据
fscanf()是scanf()的文件版本
fseek()将文件指针定位到文件中需要的位置本回答被提问者采纳
以上是关于关于C语言fread的用法的主要内容,如果未能解决你的问题,请参考以下文章