ftell()的问题

Vike920602 2011-03-18 10:45:13
《C primer plus》上说,用文本模式打开文件,在DOS下,ftell()返回一个把\r\n看成一个字符的值。可是我打开一个只有“回车”的文本文件(就是在记事本中输入一个回车),无论用二进制还是文本模式打开,都返回2。莫非ftell()在文本模式下没有把\r\n看成一个字符?
...全文
188 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
dancing_with_wolf 2011-03-19
  • 打赏
  • 举报
回复
首先:ftell()的原型是:long ftell(FILE*fp),所以如果返回的话可能是返回2L,
其次:ftell()如果发生错误,返回的值是:-1L,
所以,可能是你的代码有问题。
witwolf 2011-03-19
  • 打赏
  • 举报
回复
检查下代码吧。
delphiwcdj 2011-03-19
  • 打赏
  • 举报
回复
书上有时也有很多错的,用实践检验真理
zhouhui915 2011-03-19
  • 打赏
  • 举报
回复
在Windows下回车就是\r\n 在Linux下回车是\n ,注意区别
xali 2011-03-19
  • 打赏
  • 举报
回复
或者是否我们用的DOS不是真实的DOS?只能试验了。
xali 2011-03-19
  • 打赏
  • 举报
回复
看来是C++ Primer 错了,事实是:getch(fp)在文本方式将\r\n当做一个字符读了,在二进制时作为两个字符读了,而ftell(fp)始终记录着二进制的位置。
就是说getch(fp)与ftell(fp)联合使用,在文本模式与二进制模式读文件,ftell(fp)的结果可能不同。
91program 2011-03-18
  • 打赏
  • 举报
回复
实践出真知啊!

也有可能你的代码写的有问题。
内容概要:本文围绕可变桨叶四旋翼无人机的规范控制与点对点运动模拟展开,重点研究优化推力分配策略在翻转动作中的应用与性能比较。通过Matlab代码实现,构建了四旋翼动力学模型,并设计了多种控制算法以实现精确的姿态调整与轨迹跟踪。研究对比了不同推力分配方案在执行高机动性翻转动作时的稳定性、能耗效率与响应速度,旨在提升无人机在复杂飞行任务中的动态性能与控制精度。该仿真研究为无人机飞控系统的设计与优化提供了理论依据和技术支持。; 适合人群:具备一定自动控制理论基础和Matlab编程能力,从事无人机控制、飞行器动力学或机器人系统研究的科研人员及研究生。; 使用场景及目标:① 实现四旋翼无人机在三维空间中的精确点对点运动控制;② 对比分析不同推力分配策略在执行翻转等高难度动作时的控制效果与能耗表现,优化飞行性能;③ 为无人机自主飞行、特技飞行及复杂环境下的机动控制提供算法验证平台。; 阅读建议:此资源以Matlab仿真为核心,建议读者结合相关控制理论知识,深入理解代码实现细节,重点关注动力学建模、控制律设计与推力分配模块。在学习过程中,应动手调试参数,复现文中翻转动作的仿真结果,并尝试拓展至其他复杂飞行任务,以加深对无人机控制机理的理解。

70,038

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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