在Fortran中的同一行上打印

man*_*a_m 1 fortran

 if (mod(n,2) == 0) then
       write(stdout, *) "Even"
    else
       write(stdout, *) "Odd "
  end if
Run Code Online (Sandbox Code Playgroud)

我想要打印Even Odd Even Odd.为什么我不能使用$描述符呢?

Vla*_*r F 5

$您的代码中没有描述符!

但不,$标准Fortran中没有描述符.有些编译器将它作为扩展而其他编译器则没有.如果您想要便携式程序,请不要使用它.

Fortran 90的符合标准的方法是使用非前进O/O运用advance='no'.请注意,它需要格式,而不是列表定向输入.

write(stdout, some_format, advance='no') "Even"
Run Code Online (Sandbox Code Playgroud)

some_format可以是'(a)''(g0)'适用的任何东西.

此外,有关警告,请参阅http://www.cs.rpi.edu/~szymansk/OOF90/bugs.html#3(摘要:仍然可以有记录长度限制).