Файл, который будет прочитан в программе, представляет собой .txt, назовите его numbers.txt
, в форме
75694
13265
98654
и я хочу прочитать каждую отдельную цифру в массив ранга 2 (поэтому форма массива [3 5]). Проблема с моими методами, похоже, продвигается к новой записи, и я плохо понимаю подразумеваемые DO:
program f3
implicit none
integer, dimension(3,5) :: arr
integer :: i, j
open(unit=15,file="numbers.txt")
! Only attempting one method at a time, so one will be commented.
!----- Method 1 - how to advance to next record? -----
do i=1,3
do j=1,5
read(unit=15, fmt='(I1)', advance="no") arr(i,j)
enddo
enddo
!----- Method 2 - get "end of file" error -----
do i=1,3
read(unit=15, fmt='(I1)', advance="no") (arr(i,j), j=1,5)
enddo
close(15)
! Best way to display 2D array?
write(6,'(5I1)') ((arr(i,j), j=1,5), i=1,3)
end program f3
Я хотел бы иметь возможность использовать циклы do, подразумеваемые циклы do или их комбинацию, чтобы лучше понять их операции, но если есть один «стандартный» метод для этого, я хотел бы знать. Спасибо!
5(1x,i1)
потому что я ненавижу конечные пробелы. 22.08.20145(I1,:,1X)
. 22.08.20141X
в этом примере). Однако сложность слишком велика для этого ответа. 22.08.20145I2
для такого простого случая, как этот 22.08.2014