繁体   English   中英

使用在线 Fortran 编译器从标准输入读取时出现“文件结束”

[英]"End of file" when reading from standard input with an online Fortran compiler

我正在通过在线 Fortran 编译器运行以下代码。

PROGRAM ONE 

IMPLICIT NONE 

REAL:: v

READ (*,*) v


IF ( sqrt(v) > 1. ) THEN
WRITE(*,*) 'At first: sqrt(v) > 1.'

ELSE IF ( sqrt(v) < 1. ) THEN 

WRITE(*,*) 'At first: sqrt(v) < 1. '
ELSE
WRITE(*,*) 'At first: sqrt(v) == 1.'
END IF 

END PROGRAM ONE 

我收到以下消息。

$gfortran -std=gnu *.f95 -o main
$main
At line 7 of file main.f95 (unit = 5, file = 'stdin')
Fortran runtime error: End of file

Error termination. Backtrace:
#0  0x7fb0b576beda
#1  0x7fb0b576ca85
#2  0x7fb0b576d24d
#3  0x7fb0b58e3513
#4  0x7fb0b58dc459
#5  0x7fb0b58ddbb9
#6  0x400824
#7  0x4009bd
#8  0x7fb0b4c334d9
#9  0x400719
#10  0xffffffffffffffff

当你有一个像这样的读语句

READ (*,*) v

您通常可能希望程序暂停,等待来自标准输入的数据。 但是,普通文件可能已被重定向到标准输入,在这种情况下,程序会尝试从该文件中读取。 如果该文件为空,则会出现文件结束条件(请参阅您的运行时错误消息),而不是程序在等待。

在您的情况下,使用您的在线编译器,源代码旁边有一个选项卡,您可以在其中输入将用作标准输入的数据。 除非你把输入放在这里,否则你会看到这个失败。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM