我用fread读取本地文件到字符数组比如磁盘文件中的数据是9228397673b1c0801e448b0bd44dae6e
然后我定义一个字符数组a[32]读取的时候再打印出来老是后面会带几个乱码
然后我把数组改成a[100]后面的乱码又没有了,这是什么情况
1楼想你说的初始化了还是一样的出现乱码啊后面
怪了啊我把数组大小改成100就没有乱码了,改成90啊50啊都还会有。。。。奇怪了
C语言中fread的一些疑问
由上面介绍知道fread函数的第一个参数是个指针变量,可以指向任意类型实参!严归正传,对于你这里的问题, 你代码中的s是个结构体数组变量,跟普通数组变量一样,数组名本身就是个指针常量,所以在buffer位置写成s是没有问题的。那么为什么你这里读会变乱码呢?虽然你帖的代码并没有全,但从你说的读取...
C语言 fread函数问题
首先,fread读出的信息必须是fwrite写入的信息才能保证 读出信息的正确性 所以 你要读 就会读出一个学生的信息 而且你不会读出20字节的名字 地址同理 确定结构体的大小可以用sizeof关键字 下面是fwrite fread的函数原型 size_t fwrite(const void* buffer, size_t size, size_t count, FILE* stream...
C语言高手帮忙:fread 函数的问题
用fread(temp,1024,1,fp)也能读出,意思是一个元素的大小是1024个字节,每次读取一个,这在读取前面内容时没问题,当读到最后,加入只剩下100个字节的数据,不足1024字节时,程序返回0,你无法知道程序最后一次读出了多少数据。如果用fread(temp,1,1024,fp),则程序每次返回读出数据的字节数,即使读...
c语言 fread的问题
(5) 要用fread 读取, 你原来的文件 必须 用 "wb" 方式打开 和 用 fwrite 写成。
C语言 文件中的fread 问题
{ int n ;FILE *fp;if((fp=fopen("zifu.c","w+"))==NULL){ printf("cannot open the file\\n");exit(0);} char str[256],str1[256];gets(str);n=fprintf(fp,"%s",str);rewind(fp) ;fread(str1,sizeof(str),1,fp);str1[n] = 0 ;puts(str1);getchar() ;fclose(fp)...
C语言 fread函数的疑问?
读取的元素个数为1。sizeof得到的是元素大小。从一个文件流中读数据,读取 1个元素 ,每个元素 sizeof字节.如果调用成功返回值大于1。如不成功,返回实际读取的元素个数,小于1.满意请采纳,还有问题请追问。
C语言fread()函数读取出问题,求大神解答
fread() 用于2进制文件的读。被读的文件应当是2进制文件,并且是用 fwrite() 写成的。文件打开 必须 用到 "b" (2进制) -- "rb" "wb" ...又读又写文件,注意文件指针位置的控制,般动,回绕文件等等,并保证文件及时写出(调 fflush() )。分别读,写文件,注意文件 关闭,文件打开的顺...
C语言关于fread这个函数的问题
因为你的数组a没有进行正确的初始化。可以这样定义 char a[32]={0};===补充=== 哦,你的数组定义的太小了,读取的内容是32你的数组也是32,没有位置放置字符串结束符号\\0(值为0)。你把数组大小改为33就ok了
C语言fread函数问题
不能确定,如果读错了文件,那就全是错的 如果读取的是正确的文件(就是你先前用同样结构写了数据的那个文件),那就是对的 为了防止读错误的文件,可以在文件头加一个标志,文件头符合标志的才继续读取,否则不读,提示错误 一般可以用文件的大小来确定有多少个记录,一直读到EOF,记录读到的字节数...
c语言中fread函数问题
是十进制整数格式,又不是二进制格式,要输出二进制形式,要自己写算法.另外,这个程序有一些严重的错误,修改如下:include "stdio.h"include <conio.h>\/*用到了getch()函数*\/ void main(){ int f;FILE *fp;fp=fopen("D:\\\\1","rb");fread(&f,1,sizeof(int),fp);printf("%d",fp);getch...