#include <stdio.h>
#include <string.h>
void main()
{
FILE *fp;
FILE *fpw;
char temp[1024];
for(i=0;i<sizeof(temp);i++)
{
temp[i]='\0';
}
fp=fopen("c:/book/1.mp3","rb");
if(fp==NULL)
{
printf("can not open file\n");
}
fpw=fopen("c:/book/2.mp3","w+b");
while(!feof(fp))
{
fread(temp,sizeof(temp),1,fp);
printf("%d\n%s\n",k,temp);
k=strchr(temp,'\0');
if(k==NULL)
{
fwrite(temp,sizeof(temp),1,fpw);
}
else
{
fwrite(temp,int(k-temp),1,fpw);
}
memset(temp,0,sizeof(temp));
}
fclose(fp);
fclose(fpw);
}
函数读到文件的最后老是会加入空格字符,要不然就直接死掉;
有什么办法判断 fread 读到了文件末尾没?
C语言高手帮忙:fread 函数的问题
函数的返回值是实际读出元素的个数。fwrite的第二和第三个参数及返回值的含义同上。用fread(temp,1024,1,fp)也能读出,意思是一个元素的大小是1024个字节,每次读取一个,这在读取前面内容时没问题,当读到最后,加入只剩下100个字节的数据,不足1024字节时,程序返回0,你无法知道程序最后一次读出了...
c语言 fread的问题
(5) 要用fread 读取, 你原来的文件 必须 用 "wb" 方式打开 和 用 fwrite 写成。
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函数的第一个参数是个指针变量,可以指向任意类型实参!严归正传,对于你这里的问题, 你代码中的s是个结构体数组变量,跟普通数组变量一样,数组名本身就是个指针常量,所以在buffer位置写成s是没有问题的。那么为什么你这里读会变乱码呢?虽然你帖的代码并没有全,但从你说的读取...
C语言fread()函数读取出问题,求大神解答
fread() 用于2进制文件的读。被读的文件应当是2进制文件,并且是用 fwrite() 写成的。文件打开 必须 用到 "b" (2进制) -- "rb" "wb" ...又读又写文件,注意文件指针位置的控制,般动,回绕文件等等,并保证文件及时写出(调 fflush() )。分别读,写文件,注意文件 关闭,文件打开的顺...
C语言 fread函数的疑问?
读取的元素个数为1。sizeof得到的是元素大小。从一个文件流中读数据,读取 1个元素 ,每个元素 sizeof字节.如果调用成功返回值大于1。如不成功,返回实际读取的元素个数,小于1.满意请采纳,还有问题请追问。
C语言fread函数问题
函数的返回值是实际读出元素的个数。fwrite的第二和第三个参数及返回值的含义同上。用fread(temp,1024,1,fp)也能读出,意思是一个元素的大小是1024个字节,每次读取一个,这在读取前面内容时没问题,当读到最后,加入只剩下100个字节的数据,不足1024字节时,程序返回0,你无法知道程序最后一次读出了...
C语言关于fread这个函数的问题
因为你的数组a没有进行正确的初始化。可以这样定义 char a[32]={0};===补充=== 哦,你的数组定义的太小了,读取的内容是32你的数组也是32,没有位置放置字符串结束符号\\0(值为0)。你把数组大小改为33就ok了
C语言fread函数问题
如果读取的是正确的文件(就是你先前用同样结构写了数据的那个文件),那就是对的 为了防止读错误的文件,可以在文件头加一个标志,文件头符合标志的才继续读取,否则不读,提示错误 一般可以用文件的大小来确定有多少个记录,一直读到EOF,记录读到的字节数,除以结构的字节数,得到共有多少个结构体 ...
C语言 文件中的fread 问题
void main(){ 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() ...