Fortran Coder

查看: 4327|回复: 3
打印 上一主题 下一主题

[输入输出] 所以控制字符到底是怎么回事呢

[复制链接]

6

帖子

2

主题

0

精华

入门

F 币
36 元
贡献
17 点
跳转到指定楼层
楼主
发表于 2022-4-7 16:51:43 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
看Fortran95/2003程序设计的时候,发现了控制字符的概念,但是我在Compaq visual Fortran 里面试了一下,并没有什么效果。(控制字符被当作普通字符输出)所以控制字符是只在行式打印机里面有效吗?还是说有别的机制呢?
分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

6

帖子

2

主题

0

精华

入门

F 币
36 元
贡献
17 点
沙发
 楼主| 发表于 2022-4-7 16:58:05 | 只看该作者
我又用一个古老的fortran powerstation for windows3.1试了一下,发现控制字符确实是启用的(如下图)

所以为什么和书上说的"但是现有的最近 50 年编写的 Fortran 程序都已经采用了控制字符功能,没有编译器厂商能够将这个功能删除,而不冒失去市场份额的危险。我希望对于不确定的未来,控制字符的功能是所有Fortran编译器的一部分。"不一样呢...

19

帖子

0

主题

0

精华

专家

F 币
370 元
贡献
122 点
板凳
发表于 2022-4-8 06:02:20 | 只看该作者
如果可以看到StackOverflow的话直接去看原答案吧已经够详细的了:Stackoverflow上的回答
其中的几个回答都很不错。建议都看看。

简单来说就是这东西实在是太老了,这个控制字符是为了行式打印机服务的。在每一行的第一列的会给行式打印机一些信息来告诉行式打印机诸如“我要不要跳过这一行”这类的信息。而这种东西不应该是编程语言该关心的部分,因为太过于依赖硬件了。在一个比较现代的Fortran标准里面(03之后),控制字符(control characters)可以出现在固定格式里。这个目的再明显不过了,就是为了兼容老一些的代码(这是03标准里的解释:Nevertheless, for compatibility with Fortran77, control characters remain permitted in principle in fixed source form.)。你说的那本Chapman的书也太老了,这本书的后面几版也没有再提到这个概念。我自己也从来没有碰到需要处理这种问题的时候,可能处理一些老代码会遇到。

评分

参与人数 1F 币 +1 贡献 +1 收起 理由
fcode + 1 + 1 赞一个!

查看全部评分

2033

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1641 元
贡献
709 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

地板
发表于 2022-4-8 08:39:33 | 只看该作者
现代程序用不上,也不够标准。

所以,跳过这部分内容吧。

即便你是要阅读老代码,输出结果的排布形式稍有不同,也不影响你理解代码思维。
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-12-24 09:56

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表