簡體   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