谁来跟我挑战效率?从文件d.txt中逐个读出能读的浮点数,比如"1.0,3.5,2.2 ..."

赵4老师 2011-02-23 03:13:11
缘起这个帖子
http://topic.csdn.net/u/20110218/12/E039E736-CA2F-4168-B06A-14D386D511C5.html

//谁来跟我挑战效率?从文件d.txt中逐个读出能读的浮点数,比如"1.0,3.5,2.2 ..."
#include <stdio.h>
int n,r;
double d;
FILE *f;
void main() {
f=fopen("d.txt","r");
n=0;
while (1) {
r=fscanf(f,"%lf",&d);
if (1==r) {
n++;
printf("[%d]==%lg\n",n,d);//可以试试注释掉这句以后的速度
} else if (0==r) {
fscanf(f,"%*c");
} else break;
}
fclose(f);
}

...全文
5762 85 打赏 收藏 转发到动态 举报
写回复
用AI写文章
85 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2013-04-26
  • 打赏
  • 举报
回复
引用 84 楼 dizuo 的回复:
顶一下老赵~
谢顶!(秃头?)
ryfdizuo 2013-04-23
  • 打赏
  • 举报
回复
顶一下老赵~
赵4老师 2013-04-23
  • 打赏
  • 举报
回复
赵4老师 2011-10-21
  • 打赏
  • 举报
回复
[Quote=引用 81 楼 guodongdong1988 的回复:]
这有必要吗 一次搞一个 读一次文件
完全可以用流先读入一块数据到内存缓冲数组中,在进行分割读到浮点树
[/Quote]
没必要读到内存,因为文件本来就是被操作系统按簇读到内存的。
guodongdong1988 2011-10-21
  • 打赏
  • 举报
回复
这有必要吗 一次搞一个 读一次文件
完全可以用流先读入一块数据到内存缓冲数组中,在进行分割读到浮点树
追求执着 2011-09-19
  • 打赏
  • 举报
回复
都是C牛人!!!
w495771636 2011-08-12
  • 打赏
  • 举报
回复
争的蛋疼,出来打一架。
赵4老师 2011-07-22
  • 打赏
  • 举报
回复
[Quote=引用 75 楼 china_ssl 的回复:]
引用楼主 zhao4zhong1 的回复:
缘起这个帖子
http://topic.csdn.net/u/20110218/12/E039E736-CA2F-4168-B06A-14D386D511C5.html

C# code
//谁来跟我挑战效率?从文件d.txt中逐个读出能读的浮点数,比如"1.0,3.5,2.2 ..."
#include <stdio.h>
int n,r……
楼主这里为什么不if (r)呢?
[/Quote]
因为r为EOF也满足if (r)
xiaolugege 2011-07-22
  • 打赏
  • 举报
回复
学习了
w20011025 2011-07-19
  • 打赏
  • 举报
回复
mark 学习之
china_ssl 2011-07-18
  • 打赏
  • 举报
回复
[Quote=引用楼主 zhao4zhong1 的回复:]
缘起这个帖子
http://topic.csdn.net/u/20110218/12/E039E736-CA2F-4168-B06A-14D386D511C5.html

C# code
//谁来跟我挑战效率?从文件d.txt中逐个读出能读的浮点数,比如"1.0,3.5,2.2 ..."
#include <stdio.h>
int n,r;
double d;
FILE *f;
void……
[/Quote]

楼主这里为什么不if (r)呢?
大道曙光 2011-06-30
  • 打赏
  • 举报
回复
mark 学习之
张小毛 2011-05-11
  • 打赏
  • 举报
回复
呵呵,来晚了,来看看
hw_henry2008 2011-04-26
  • 打赏
  • 举报
回复
[Quote=引用 62 楼 zhao4zhong1 的回复:]

关于“效率”所包含的意义我个人理解:
不仅是运行速度快,还有对各种异常输入保持合理输出的正确率,以及容易被理解的程度,和容易被修改的程度……
[/Quote]
赵老师的帖子引出了无数问题啊!从磁盘到线程,汇编到各种库···
依然那么经典!学习了
LB065X 2011-04-17
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 milkylove 的回复:]
难得zhao4zhong1发个帖子,必须得围观一下
[/Quote]


同样
赵4老师 2011-02-25
  • 打赏
  • 举报
回复
为什么要运行三次?是企图避开磁盘Cache对速度的影响。
赵4老师 2011-02-25
  • 打赏
  • 举报
回复
[Quote=引用 66 楼 dch4890164 的回复:]
引用 65 楼 zhao4zhong1 的回复:

引用 63 楼 milkylove 的回复:
楼主对效率一词理解实在好笑。之前不还一直说“运行三次并计时比较”么

运行三次,结果都不一样,比较快慢还有什么意义?

可以用纯dos,保证每次结果都一样,一样的标准是精确到us!
[/Quote]
因为CPU有流水线指令预取,精确到微秒恐怕没戏,不过应该比在多任务系统更精确。
不过我的意思不是我的程序执行三次,每次时间不一样;而是我的程序和挑战者的程序对同一个测试数据输出的浮点数个数和浮点数数值不一样。
dch4890164 2011-02-25
  • 打赏
  • 举报
回复
[Quote=引用 65 楼 zhao4zhong1 的回复:]

引用 63 楼 milkylove 的回复:
楼主对效率一词理解实在好笑。之前不还一直说“运行三次并计时比较”么

运行三次,结果都不一样,比较快慢还有什么意义?
[/Quote]
可以用纯dos,保证每次结果都一样,一样的标准是精确到us!
赵4老师 2011-02-25
  • 打赏
  • 举报
回复
[Quote=引用 63 楼 milkylove 的回复:]
楼主对效率一词理解实在好笑。之前不还一直说“运行三次并计时比较”么
[/Quote]
运行三次,结果都不一样,比较快慢还有什么意义?
sbdt123 2011-02-25
  • 打赏
  • 举报
回复
有意思,看看
加载更多回复(65)

15,440

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧