string - 在Fortran中读取带空格的字符串

标签 string fortran fortran90 gfortran fortran77

如果要从用户读取的字符串包含空格,则在Fortran中使用read(星号,星号)似乎不起作用。
考虑以下代码:

    character(Len = 1000) :: input = ' '
    read(*,*) input


如果用户输入字符串“ Hello,我的名字叫John Doe”,则只有“ Hello”会存储在输入中;忽略空间后的所有内容。我的假设是,编译器假设“ Hello”是第一个参数,而“ my”是第二个参数,因此要捕获其他单词,我们必须使用read(,)input1,input2,input3之类的东西。 ...等。这种方法的问题在于,我们需要为每个输入创建大型字符数组,并且需要确切知道将输入多少个单词。有没有办法解决??某些功能实际上将读取整个句子,空格以及所有内容?非常感谢!

最佳答案

  character(100) :: line

  write(*,'("Enter some text: ",\)')
  read(*,'(A)') line
  write(*,'(A)') line

  end


...将读取一行最大长度为100(对于大多数实际用途而言足够)的文本,并将其写回给您。根据自己的喜好进行修改。

关于string - 在Fortran中读取带空格的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6319631/

相关文章:

performance - 如何在 Fortran 中执行整数 log2() ?

java - 试图理解 Java String 实现

parallel-processing - MPI集合运算在多核机上的实现细节

fortran - 如何从真实中获得低字和高字?

types - 使用 gfortran 强制显式变量声明

带有数字/标签的 Fortran IF 语句而不是另一个语句

java - Android - java - 计算字数

java - 如何从 StringTokenizer 获取分隔符?

python - Python 字符串不是不可变的吗?那为什么 a + ""+ b 有效?

python - 是否有与 fortran 可重复格式描述符等效的 python 版本?