[英]"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.