You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Fortran 77实现类似Java input.next()的逐词输入方法咨询

最简实现Fortran 77版的input.next()功能

嘿,作为Fortran 77新手,我太懂你不想手动逐个字符抠空格的麻烦了!其实Fortran本身就自带了类似Java input.next()的功能,完全不用自己写繁琐的字符处理逻辑,用列表导向输入就能搞定,这是最简洁的实现方式。

核心原理

Fortran 77的READ(*,*)语句(即用星号作为格式说明符的列表导向输入)会自动跳过所有空白字符(空格、制表符、换行),每次读取一段连续的非空白字符序列——这不就是你要的“逐个提取单词”吗?

示例代码

直接上能运行的代码,你可以复制测试:

PROGRAM EXTRACT_WORDS
          CHARACTER*20 WORD  ! 定义足够长的字符变量容纳单词,可按需调整长度
          PRINT *, "请输入一段文本(按Ctrl+D结束输入):"
 10        CONTINUE  ! 循环标签
          ! 读取一个单词,遇到输入结束时跳转到20标签
          READ(*,*,END=20) WORD
          PRINT *, "提取到的单词:", WORD
          GOTO 10  ! 继续读取下一个单词
 20        CONTINUE
          STOP
      END

注意事项

  • 要确保字符变量的长度(比如上面的*20)足够容纳最长的目标单词,不然超过长度的单词会被截断。如果不确定长度,可以设得宽松些,比如*50或*100。
  • 这个方法适配空格分隔的普通单词场景,如果你需要处理带引号、包含空格的特殊字符串,才需要手动处理字符,但你的需求刚好完美匹配这个最简方案。

内容的提问来源于stack exchange,提问作者kazım bekir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 07:12:52