C语言 文件中的fread 问题

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void main()
{
FILE *fp;
if((fp=fopen("zifu.c","wb"))==NULL)
{
printf("cannot open the file\n");
exit(0);
}
char str[256],str1[256];
gets(str);
fprintf(fp,"%s",str);
fread(str1,sizeof(256),1,fp);
strupr(str1);
puts(str1);
fclose(fp);
system("pause");
}
程序咋改 才不会有那些字

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
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() ;
fclose(fp);
system("pause");
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-12-02
int size ;
size = fread(str1,sizeof(256),1,fp);
str1[size] = '\0';追问

没有用 你自己加 试试 出来个问号 "?"

追答

char str[256],str1[256];
memset(str , 0 , sizeof(str));
memset(str1 , 0 , sizeof(str1));

第2个回答  2011-12-05
fopen("zifu.c","W+")

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的问题
fprintf(fp1,"%s %s %s %d %d\\n",也要用空白把数据分隔开来。(3)fread(&stu[i],sizeof(struct student),1,fp1);fread 只用于 2进制方式 fwrite 写成的文件,打开文件时要有 "rb".不能用于你上面写成的文本文件。(4) 读你fp1=fopen("in.txt","w") 写成的文件 要用 fp1=fopen("in....

C语言:文件操作( fread 函数 )
C语言中的文件操作, fread函数是一个关键工具,用于从文件中读取数据到内存缓冲区。它的主要作用是读取指定数量的字节到指定的缓冲区,参数包括目标缓冲区(buffer)、每个基本单元的字节数(size)、需要读取的基本单元数量(count)、指向文件的指针(stream),返回实际读取的基本单元个数。在处理大文件...

C语言fread为什么会读取失败呢?
其出错的可能原因包括:1 文件没有打开,或打开失败。即文件指针非法。当文件不存在,或用户对文件没有读权限,目标文件被占用等情况下,打开文件会失败,这时file指针值为NULL。2 文件打开时,并没有指定读属性。3 文件IO错误。如在文件打开后,文件被其它程序强制删除,或取消可读属性等。4 文件达到...

C语言中fread的一些疑问
提供数据的文件指针(stream)返回值:成功读取的元素个数 由上面介绍知道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,fwrite 用于二进制文件。fopen 里要有 "b".FILE*fp1=fopen("D:\\\\1.dat","rb");FILE*fp2=fopen("D:\\\\2.dat","wb");

C语言高手帮忙:fread 函数的问题
如果用fread(temp,1,1024,fp),则程序每次返回读出数据的字节数,即使读最后100个字节时,也返回100,这样你可以利用返回值知道程序读出了多少数据。你程序中用'\\0'判断读出数据的结束标志,也是有问题的。mp3文件中本身就有很多NULL字符,用strchr(temp,'\\0'); 返回的指针未必指向读出数据的结束标志...

C语言里的fread问题~急,跪谢
Node是个结构体,读出的时候如果文件里面的内容对应不上的话,就返回0了。while(fread(newp.data,sizeof(newp.data),1,in))这样写好些,要不然,还要读指针给newp->next

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...

相似回答