| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1115 人关注过本帖
标题:fread为什么读取文本中的一个数字不出
只看楼主 加入收藏
liu0919
Rank: 2
等 级:论坛游民
帖 子:124
专家分:35
注 册:2013-5-13
结帖率:87.8%
收藏
已结贴  问题点数:10 回复次数:10 
fread为什么读取文本中的一个数字不出
程序代码:
#include<stdio.h>
#include<stdlib.h>
int main()
{
    int a;
    FILE *fp;

    fp=fopen("55.txt","rw");   //55.txt文本中只有一个数字55为什么显示不出来
    fread(&a,sizeof(int),1,fp);
    printf("%d",a);
    fclose(fp);
    return 0;
}
搜索更多相关主题的帖子: color 
2014-01-08 10:38
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:0 
这样读肯定显示不是你期待的。读写格式都不一致

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2014-01-08 11:58
liu0919
Rank: 2
等 级:论坛游民
帖 子:124
专家分:35
注 册:2013-5-13
收藏
得分:0 
回复 2楼 yuccn
求解,什么格式不一致
2014-01-08 12:04
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:0 
文本存放的是“55”字符串的ascii码吧,你按照int 读取出来,当然就yy了

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2014-01-08 12:09
liu0919
Rank: 2
等 级:论坛游民
帖 子:124
专家分:35
注 册:2013-5-13
收藏
得分:0 
回复 2楼 yuccn
程序代码:
#include <stdio.h>

int main()
{

 FILE * fp;

 int a=45;

 int b;



 fp=fopen("1.txt","wb+");


 fwrite(&a,sizeof(int),1,fp);///将a值写到文件中.这句起作用,移动了文件指针。
 fseek(fp,0,SEEK_SET);//将文件指针移回首部
 fread(&b,sizeof(int),1,fp);


 printf("b is %d\n\n",b);


 fclose(fp);


 return 0;


为什么这样写又可以?
2014-01-08 12:11
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:0 
“#include<stdio.h>
#include<stdlib.h>
int main()
{
    int a;
    FILE *fp;

    fp=fopen("55.txt","rw");   //55.txt文本中只有一个数字55为什么显示不出来


你的那个“55.txt文本中只有一个数字55为什么显示不出来” ,是否说直接打开记事本输入的55?

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2014-01-08 12:13
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:10 
以下是引用liu0919在2014-1-8 12:11:32的发言:

#include <stdio.h>

int main()
{
 FILE * fp;
 int a=45;
 int b;


 fp=fopen("1.txt","wb+");

 fwrite(&a,sizeof(int),1,fp);///将a值写到文件中.这句起作用,移动了文件指针。
 fseek(fp,0,SEEK_SET);//将文件指针移回首部
 fread(&b,sizeof(int),1,fp);

 printf("b is %d\n\n",b);

 fclose(fp);

 return 0;

为什么这样写又可以?

这样当然可以了。你写入的就是一个为55的int,读出来也是按照int 读出来

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2014-01-08 12:15
liu0919
Rank: 2
等 级:论坛游民
帖 子:124
专家分:35
注 册:2013-5-13
收藏
得分:0 
回复 6楼 yuccn
恩恩,我是直接打了55放55.txt中去的
2014-01-08 12:18
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:0 
以下是引用liu0919在2014-1-8 12:18:36的发言:

恩恩,我是直接打了55放55.txt中去的

是的,你直接打入55,里面存放的只是一个“55”字符的ascii码而已。你按照int 格式读取出来,当然就是不是你期望的了。
那样,你就得按照字符格式读取出来在转成int类型吧

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2014-01-08 12:21
liu0919
Rank: 2
等 级:论坛游民
帖 子:124
专家分:35
注 册:2013-5-13
收藏
得分:0 
回复 9楼 yuccn
原来是这样
2014-01-08 12:28
快速回复:fread为什么读取文本中的一个数字不出
数据加载中...
 
   



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

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