在Fortran中,设置advance =“no”,但获取换行符

时间:2018-04-15 09:02:34

标签: fortran

我在下面编写代码,首先获得N个字符串数并连接n个字符串,并打印出来。我设置advance =“no”选项,但它转到换行符。 我在此网站(https://yukicoder.me/problems/no/597

中运行此代码
program main
    implicit none
    integer::i,j,k,n
    character(1000)::str,ans
    read*,n
    do i=1,n
        read(*,'(a)')str
        str=trim(str)
        write(*,'(a)',advance='no')str
    end do
    print*,""
end program

1 个答案:

答案 0 :(得分:3)

str=trim(str)无效,它会将修剪后的字符串放回str并用空格填充(str的长度保持为1000)。  与例如相反C. Fortran没有终止字符,但用空格填充字符串的其余部分。 在将字符串写入输出时,应该省略最后的空白:

write(*,'(a)',advance='no') trim(str)