如果要从用户读取的字符串包含空格,则在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/