該代碼將文件逐行讀入到字符串中。如果字符串非空白,對應於包含兩個數字而不是空白的行,則將其讀入下一個數組元素。假定數組已被聲明爲足夠大。這回答了你的問題了嗎?更好的設計會讀取文件以確定數字的數量,倒回文件並將數組分配到正確的大小,然後將文件讀入數組。
編輯:實際上,Fortran語言會自動跳過空白行,因此該解決方案可以更簡單:
program read_file
use, intrinsic :: iso_fortran_env
implicit none
integer :: i, j, ReadCode
real, dimension (100) :: x, y
open (unit=2, file="grades.dat", access="sequential", form="formatted", status="old", action="read")
i = 1
ReadLoop: do
read (2, *, iostat=ReadCode) x (i), y (i)
if (ReadCode /= 0) then
if (ReadCode == iostat_end) then
exit ReadLoop
else
write (*, '(/ "Bad read: ", I0)') ReadCode
stop
end if
end if
i = i + 1
end do ReadLoop
do j=1,i-1
write (*, *) x(j), y(j)
end do
end program read_file
請出示你做了什麼 – BBdev 2013-03-15 03:22:15
@BBdev 謝謝你的回覆。我已經嘗試過10次不同的迭代,但基本上它們都與OPEN/PRINT或READ類似。我只需要從文件中獲取所有值。 – Joe 2013-03-15 03:33:49
您沒有在您的READ命令中指定的格式。 READ(2,*)X,Y應該修復它。另外,閱讀文件後關閉文件以及解決已解決的問題是很好的舉止。 <3 – 2014-06-19 04:18:17