| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 9865 人关注过本帖
标题:文件读取,fscanf()的使用问题!
只看楼主 加入收藏
lijun520
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2013-8-24
结帖率:0
收藏
已结贴  问题点数:20 回复次数:8 
文件读取,fscanf()的使用问题!
#include<conio.h>

#include<stdio.h>

#include<bios.h>

#include<stdlib.h>

#include"graphics.h"

#include"time.h"

struct timdata{

 int year;

 int mon;

 int day;

 int wday;

 int hour;

 int min;

 int sec;

 float data;

};

void main(){

    FILE*fp;

    int i;

    struct timdata da[20];

    fp=fopen("data.txt","r");

    for(i=0;i<20;i++){

      fscanf(fp,"%d/%d/%d%d%d:%d:%d%.2f\n",&da[i].year,&da[i].mon,&da[i].day,&da[i].wday,&da[i].hour,&da[i].min,&da[i].sec,&da[i].data);

      printf("%d/%d/%d %d %d:%d:%d %.2f\n",da[i].year,da[i].mon,da[i].day,da[i].wday,da[i].hour,da[i].min,da[i].sec,da[i].data);

    }

    fclose(fp);

    getch();

}这是我的读取程序!

2013/8/24 6 9:59:46 4.16

2013/8/24 6 9:59:46 4.16

2013/8/24 6 9:59:46 4.16

2013/8/24 6 9:59:46 4.16

2013/8/24 6 9:59:46 4.16

2013/8/24 6 9:59:46 4.16

2013/8/24 6 9:59:46 4.16

2013/8/24 6 9:59:46 4.16

2013/8/24 6 9:59:46 4.16

2013/8/24 6 9:59:46 4.16

2013/8/24 6 9:59:46 4.16

2013/8/24 6 9:59:46 4.16

2013/8/24 6 9:59:46 4.16

2013/8/24 6 9:59:46 4.16

2013/8/24 6 9:59:46 4.16

2013/8/24 6 9:59:46 4.16

2013/8/24 6 9:59:46 4.16

2013/8/24 6 9:59:46 4.16

2013/8/24 6 9:59:46 4.16

2013/8/24 6 9:59:46 4.16

这是文件数据,保存为data。txt。。运行后为读取后的数据只有第一行的前七个是正确的,后面的都是错的???大神求解释!
 
搜索更多相关主题的帖子: include 
2013-08-24 16:41
小小程序猿
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:1
帖 子:755
专家分:2785
注 册:2013-7-18
收藏
得分:7 
我只能说呵了个呵了

孤独与寂寞是催化一个人迅速成长的良药,没有之一
2013-08-24 19:40
lijun520
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2013-8-24
收藏
得分:0 
回复 2楼 小小程序猿
帮看下嘛
2013-08-24 21:08
赵疯子
Rank: 8Rank: 8
来 自:dream
等 级:蝙蝠侠
威 望:2
帖 子:365
专家分:737
注 册:2013-5-5
收藏
得分:7 
我勇敢的说,我没看懂
2013-08-25 12:31
guhemeng
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:100
专家分:165
注 册:2013-7-27
收藏
得分:7 
  格式化读取不是说要你按源文件的书写格式读取,格式化读取只是告诉计算机你是怎么样去读取数据,%d int数据格式,%f float 数据格式,%s string数据格式 ......  "%d/%d/%d%d%d:%d:%d%.2f\n" 中间打的分号想干啥?   这是读取数据,不是读入数据!

另外,文件指针怎么移动的?  读取“2013/8/24 6 9:59:46 4.16” 后,指针会自动从下一行开始?  再抱着书本研究下!
2013-08-25 18:52
guhemeng
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:100
专家分:165
注 册:2013-7-27
收藏
得分:0 
1)改 data.txt
2013/8/24 6 9:59:46 4.16    改成  2013 8 24 6 9 59 46 4.16
2)改fscanf
fscanf(fp,"%d%d%d%d%d%d%d%f\n",&da[i].year,&da[i].mon,&da[i].day,&da[i].wday,&da[i].hour,&da[i].min,&da[i].sec,&da[i].data);

以上修改后,你再运行下,可以得到你想要的结果! 注学习进步!
2013-08-25 19:14
guhemeng
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:100
专家分:165
注 册:2013-7-27
收藏
得分:0 
如果你不改 data.txt 的话,就需要判断或者格式转换,反正都比改data.txt 麻烦多了,自己研究吧!
2013-08-25 19:17
guhemeng
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:100
专家分:165
注 册:2013-7-27
收藏
得分:0 
分都给我吧, 其他人都不想回答这种问题!
2013-08-25 19:19
lijun520
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2013-8-24
收藏
得分:0 
回复 6楼 guhemeng
你说的是对的,经过研究WIN-TC有BUG,对for()下读取float数据会出错。。
2013-08-26 11:21
快速回复:文件读取,fscanf()的使用问题!
数据加载中...
 
   



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

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