
c语言fwrite和fread
#include<stdio.h>intmain(){FILE*p1=fopen("a.txt","wb+");inta,b;a=5;fwrite(&a,sizeof(a...
#include<stdio.h>
int main()
{
FILE *p1=fopen("a.txt","wb+");
int a,b;
a=5;
fwrite(&a,sizeof(a),1,p1);
fread(&b,sizeof(b),1,p1);
printf("%d\n",b);
fclose(p1);
}
为什么运行后输出是负值
而且没有文本输出a.txt还是空文本
顺便说一下这两个函数一般怎么用呢?
谢谢 展开
int main()
{
FILE *p1=fopen("a.txt","wb+");
int a,b;
a=5;
fwrite(&a,sizeof(a),1,p1);
fread(&b,sizeof(b),1,p1);
printf("%d\n",b);
fclose(p1);
}
为什么运行后输出是负值
而且没有文本输出a.txt还是空文本
顺便说一下这两个函数一般怎么用呢?
谢谢 展开
展开全部
读数据块函数调用的一般形式为:
fread(buffer,size,count,fp);
写数据块函数调用的一般形式为:
fwrite(buffer,size,count,fp);
其中:
buffer 是一个指针,在fread 函数中,它表示存放输入数据的首地址。在fwrite 函
数中,它表示存放输出数据的首地址。
size 表示数据块的字节数。
count 表示要读写的数据块块数。
fp 表示文件指针。
fread(buffer,size,count,fp);
写数据块函数调用的一般形式为:
fwrite(buffer,size,count,fp);
其中:
buffer 是一个指针,在fread 函数中,它表示存放输入数据的首地址。在fwrite 函
数中,它表示存放输出数据的首地址。
size 表示数据块的字节数。
count 表示要读写的数据块块数。
fp 表示文件指针。
展开全部
以"wb+"方式打开的二进制文件用于读/写,如果这个文件不存在,则建立这个文件,如果存在,则打开这个文件。
读写文件时,还有一个用于读/写文件内容的指针,这个指针随着fread()和fwrite()函数的操作而改变,控制该指针的函数是int fseek(FILE *stream, long offset, int fromwhere);。
就以上原因,修改如下:
#include<stdio.h>
int main() {
FILE *fp = fopen("a.txt","wb+");
int a,b;
a = 5;
fwrite(&a,sizeof(int),1,fp);
fseek(fp,-(long)sizeof(int),SEEK_CUR); // 从当前位置向后移动读/写指针
fseek(fp,0,SEEK_CUR); // 改变为"读"模式
fread(&b,sizeof(int),1,fp);
printf("%d\n",b);
fclose(fp);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |