| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 544 人关注过本帖
标题:关于fread fseek fwrite 的一个小问题问下,
只看楼主 加入收藏
NeQhk
Rank: 2
等 级:论坛游民
威 望:1
帖 子:164
专家分:85
注 册:2014-7-19
结帖率:69.23%
收藏
 问题点数:0 回复次数:2 
关于fread fseek fwrite 的一个小问题问下,
#include<stdio.h>
#include<string.h>
#define SEEK_SET 0
int main(){
     FILE *fp;
     char buf[10];
     char str[10]="aaaaaaaaaa";
     fp=fopen("c:\\12.txt","w");
     if(fp==NULL){
         printf("open file wrongly");
         return 0;
     }
     fwrite(str,sizeof(str),1,fp);
     fseek(fp,0,SEEK_SET);
      fread(buf,sizeof(str),1,fp);
      printf("%s\n",buf);


     fclose(fp);
    return 0;
}

编译并运行了以后,
标准输出总是出现aaaaaaaaaa外加一些汉字,
这些汉字怎么出现,
应该怎么修改才可以消除
且文件里不会写入这些文字。
搜索更多相关主题的帖子: aaaaaaaaaa include return 汉字 file 
2014-12-13 14:18
梦里云归
Rank: 2
等 级:论坛游民
帖 子:17
专家分:12
注 册:2014-9-20
收藏
得分:0 
fp=fopen("c:\\12.txt","w");改为fp=fopen("c:\\12.txt","r");
文件打开方式不对,乱码了
2014-12-13 21:24
lknight
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:37
专家分:187
注 册:2008-9-17
收藏
得分:0 
程序代码:
#include<stdio.h>
#include<string.h>
#define SEEK_SET 0
int main(){
     FILE *fp;
     char buf[10];//这里你定义10个字符,后面你读出来10个a,但是你printf输出读出的数据时,却是用字符串输出,所以末尾要加一个字节'\0'共11个字符才行,要不后面确实是乱码
     char str[10]="aaaaaaaaaa";//这里你定义了长度为10的字符数组,但事实后面的字符串有11个字符,越界了
     fp=fopen("c:\\12.txt","w");
     if(fp==NULL){
         printf("open file wrongly");
         return 0;
     }
     fwrite(str,sizeof(str),1,fp);
     fseek(fp,0,SEEK_SET);
      fread(buf,sizeof(str),1,fp);//这里你试图读一个以写方式打开的文件
      printf("%s\n",buf);


     fclose(fp);
    return 0;
}
2014-12-13 21:48
快速回复:关于fread fseek fwrite 的一个小问题问下,
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020818 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved