Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
读取(*,*)原因(单位=5,文件=';标准输入';)Fortran运行时错误:文件结束_Fortran_Fortran90 - Fatal编程技术网

读取(*,*)原因(单位=5,文件=';标准输入';)Fortran运行时错误:文件结束

读取(*,*)原因(单位=5,文件=';标准输入';)Fortran运行时错误:文件结束,fortran,fortran90,Fortran,Fortran90,我试图用Fortran 90编写一个小代码段,以读取用户的文件名,我知道这应该很简单,但我就是不知道我做错了什么 剧本是: 程序测试 隐式无 字符(Len=15)::文件名 写入(*,*)“输入文件名” 读取(*,*)文件名 写入(*,*),这样文件名就叫“文件名” 结束程序测试 然后我使用gfortran在ubuntu系统上编译它: $ gfortran test.f90 -o test.exe 它编译得很好,但是当我运行/test.exe时,我得到以下输出: $。/test.exe 输入

我试图用Fortran 90编写一个小代码段,以读取用户的文件名,我知道这应该很简单,但我就是不知道我做错了什么

剧本是:

程序测试
隐式无
字符(Len=15)::文件名
写入(*,*)“输入文件名”
读取(*,*)文件名
写入(*,*),这样文件名就叫“文件名”
结束程序测试
然后我使用gfortran在ubuntu系统上编译它:

$ gfortran test.f90 -o test.exe
它编译得很好,但是当我运行
/test.exe
时,我得到以下输出:

$。/test.exe
输入文件名
在文件test.f90的第6行(单位=5,文件=stdin)
Fortran运行时错误:文件结束
错误终止。回溯:
#0 0x7f435e83b32a
当我期望得到的是:

$。/test.exe
输入文件名
[用户输入文本时程序暂停]
因此该文件被称为[用户输入的文本]

我就是找不到这个错误的例子,也找不到在线修复的方法。有人能告诉我哪里出了问题吗?

我想我们需要更多关于您正在使用的系统(Win/Mac/Linux)的信息,以及您是如何运行该程序的。它看起来有点像没有一个标准的输入流,这是。。。奇怪。欢迎,请拿着这本书读一读。请给我们更多的细节。你的操作系统是什么?你的编译器是什么?你到底是如何运行代码的?在什么类型的终端上?你使用的是哪个版本的gfortran?我在windows计算机中的虚拟Ubuntu 20.04 LTS发布环境中运行。编译器版本为GNU Fortran 7.5.0。我可以在设置中编译和运行其他fortran脚本。只有READ命令触发了错误。听起来你的stdin在虚拟机中被破坏了。您是否可以尝试直接向程序提供输入,例如,
$echo“123”|/test.exe
?我想我们需要有关您正在使用的系统(Win/Mac/Linux)以及您运行程序的确切方式的更多信息。它看起来有点像没有一个标准的输入流,这是。。。奇怪。欢迎,请拿着这本书读一读。请给我们更多的细节。你的操作系统是什么?你的编译器是什么?你到底是如何运行代码的?在什么类型的终端上?你使用的是哪个版本的gfortran?我在windows计算机中的虚拟Ubuntu 20.04 LTS发布环境中运行。编译器版本为GNU Fortran 7.5.0。我可以在设置中编译和运行其他fortran脚本。只有READ命令触发了错误。听起来你的stdin在虚拟机中被破坏了。您是否可以尝试直接向程序提供输入,例如
$echo“123”|/test.exe