FORTRAN-77 ввод-выводconst.uimech.org/files/img/fortran/7/f77-07.pdf · 2005. 11. 9. ·...

21
Работа с файлами Форматный ввод-вывод FORTRAN-77 ввод-вывод Михайленко К. И. Башгосуниверситет Институт механики Уфимского научного центра РАН (7) Михайленко К. И. FORTRAN-77: ввод-вывод

Transcript of FORTRAN-77 ввод-выводconst.uimech.org/files/img/fortran/7/f77-07.pdf · 2005. 11. 9. ·...

Page 1: FORTRAN-77 ввод-выводconst.uimech.org/files/img/fortran/7/f77-07.pdf · 2005. 11. 9. · Работа с файлами Форматный ввод-вывод Перенаправление

Работа с файламиФорматный ввод-вывод

FORTRAN-77ввод-вывод

Михайленко К. И.

БашгосуниверситетИнститут механики Уфимского научного центра РАН

(7)

Михайленко К. И. FORTRAN-77: ввод-вывод

Page 2: FORTRAN-77 ввод-выводconst.uimech.org/files/img/fortran/7/f77-07.pdf · 2005. 11. 9. · Работа с файлами Форматный ввод-вывод Перенаправление

Работа с файламиФорматный ввод-вывод

Перенаправление стандартных потоков ввода-выводаОткрытие файлаЗакрытие файлаЗапись в файл

Перенаправление стандартных потоков

Перенаправление вывода$ ./program > output.file$ ./program >> output.file

Перенаправление ввода$ ./program < input.file

Перенаправление ввода и вывода$ ./program < input.file > output.file

Михайленко К. И. FORTRAN-77: ввод-вывод

Page 3: FORTRAN-77 ввод-выводconst.uimech.org/files/img/fortran/7/f77-07.pdf · 2005. 11. 9. · Работа с файлами Форматный ввод-вывод Перенаправление

Работа с файламиФорматный ввод-вывод

Перенаправление стандартных потоков ввода-выводаОткрытие файлаЗакрытие файлаЗапись в файл

Оператор открытия файла

OPEN (UNIT=N, FILE=filename)OPEN (N, FILE=filename)

UNIT= номер устройства (целая константа или *)FILE= имя файла (символьная константа или переменная)ERR= меткаIOSTAT= целая переменнаяSTATUS= ’OLD’ или ’NEW’ или ’SCRATCH’ или ’UNKNOWN’

ACCESS= ’SEQUENTIAL’ или ’DIRECT’

RECL= целое значение (используется при прямом доступе)FORM= ’FORMATTED’ или ’UNFORMATTED’

BLANK= ’NULL’ или ’ZERO’

Михайленко К. И. FORTRAN-77: ввод-вывод

Page 4: FORTRAN-77 ввод-выводconst.uimech.org/files/img/fortran/7/f77-07.pdf · 2005. 11. 9. · Работа с файлами Форматный ввод-вывод Перенаправление

Работа с файламиФорматный ввод-вывод

Перенаправление стандартных потоков ввода-выводаОткрытие файлаЗакрытие файлаЗапись в файл

Оператор закрытия файла

CLOSE (N)

UNIT= номер устройства (целая константа или *)ERR= меткаIOSTAT= целая переменнаяSTATUS= ’DELETE’ или ’KEEP’

Михайленко К. И. FORTRAN-77: ввод-вывод

Page 5: FORTRAN-77 ввод-выводconst.uimech.org/files/img/fortran/7/f77-07.pdf · 2005. 11. 9. · Работа с файлами Форматный ввод-вывод Перенаправление

Работа с файламиФорматный ввод-вывод

Перенаправление стандартных потоков ввода-выводаОткрытие файлаЗакрытие файлаЗапись в файл

Оператор записи файла

WRITE (UNIT=N, FMT=*) a, b, cWRITE (N, *) a, b, c

UNIT= номер устройства (целая константа или *)FMT= указатель форматаERR= меткаIOSTAT= целая переменнаяREC= целое выражение, задаёт номер записи

Михайленко К. И. FORTRAN-77: ввод-вывод

Page 6: FORTRAN-77 ввод-выводconst.uimech.org/files/img/fortran/7/f77-07.pdf · 2005. 11. 9. · Работа с файлами Форматный ввод-вывод Перенаправление

Работа с файламиФорматный ввод-вывод

Определение форматаОператор FORMATСпецификации

Задание формата

write (unit=*,fmt=’(i2)’) k

write (*,’(i2)’) k

a=’(i2)’write (*,a) k

write (*,100) k100 format (i2)

Михайленко К. И. FORTRAN-77: ввод-вывод

Page 7: FORTRAN-77 ввод-выводconst.uimech.org/files/img/fortran/7/f77-07.pdf · 2005. 11. 9. · Работа с файлами Форматный ввод-вывод Перенаправление

Работа с файламиФорматный ввод-вывод

Определение форматаОператор FORMATСпецификации

Задание формата

write (unit=*,fmt=’(i2)’) k

write (*,’(i2)’) k

a=’(i2)’write (*,a) k

write (*,100) k100 format (i2)

Михайленко К. И. FORTRAN-77: ввод-вывод

Page 8: FORTRAN-77 ввод-выводconst.uimech.org/files/img/fortran/7/f77-07.pdf · 2005. 11. 9. · Работа с файлами Форматный ввод-вывод Перенаправление

Работа с файламиФорматный ввод-вывод

Определение форматаОператор FORMATСпецификации

Задание формата

write (unit=*,fmt=’(i2)’) k

write (*,’(i2)’) k

a=’(i2)’write (*,a) k

write (*,100) k100 format (i2)

Михайленко К. И. FORTRAN-77: ввод-вывод

Page 9: FORTRAN-77 ввод-выводconst.uimech.org/files/img/fortran/7/f77-07.pdf · 2005. 11. 9. · Работа с файлами Форматный ввод-вывод Перенаправление

Работа с файламиФорматный ввод-вывод

Определение форматаОператор FORMATСпецификации

Задание формата

write (unit=*,fmt=’(i2)’) k

write (*,’(i2)’) k

a=’(i2)’write (*,a) k

write (*,100) k100 format (i2)

Михайленко К. И. FORTRAN-77: ввод-вывод

Page 10: FORTRAN-77 ввод-выводconst.uimech.org/files/img/fortran/7/f77-07.pdf · 2005. 11. 9. · Работа с файлами Форматный ввод-вывод Перенаправление

Работа с файламиФорматный ввод-вывод

Определение форматаОператор FORMATСпецификации

Оператор FORMAT

метка FORMAT (спецификации формата)

Спецификации формата:символьные константыопределение формы записи значенийповторителиуправляющие спецификации

Михайленко К. И. FORTRAN-77: ввод-вывод

Page 11: FORTRAN-77 ввод-выводconst.uimech.org/files/img/fortran/7/f77-07.pdf · 2005. 11. 9. · Работа с файлами Форматный ввод-вывод Перенаправление

Работа с файламиФорматный ввод-вывод

Определение форматаОператор FORMATСпецификации

Оператор FORMAT

метка FORMAT (спецификации формата)

Спецификации формата:символьные константыопределение формы записи значенийповторителиуправляющие спецификации

Михайленко К. И. FORTRAN-77: ввод-вывод

Page 12: FORTRAN-77 ввод-выводconst.uimech.org/files/img/fortran/7/f77-07.pdf · 2005. 11. 9. · Работа с файлами Форматный ввод-вывод Перенаправление

Работа с файламиФорматный ввод-вывод

Определение форматаОператор FORMATСпецификации

Спецификация для целого значения

I-спецификация Iw ︸ ︷︷ ︸

w

write (*,100) k100 format (i2)

I-спецификация с повторителем rIw

︸ ︷︷ ︸w

︸ ︷︷ ︸w

︸ ︷︷ ︸w

︸ ︷︷ ︸w ← r раз

write (*,100) k, l, m100 format (3i2)

Михайленко К. И. FORTRAN-77: ввод-вывод

Page 13: FORTRAN-77 ввод-выводconst.uimech.org/files/img/fortran/7/f77-07.pdf · 2005. 11. 9. · Работа с файлами Форматный ввод-вывод Перенаправление

Работа с файламиФорматный ввод-вывод

Определение форматаОператор FORMATСпецификации

Спецификации для вещественных значений

F-спецификация rFw.d

± .d︷ ︸︸ ︷ ︸ ︷︷ ︸

w

write (*,100) a, b100 format (2f9.4)

При вводе допустима запись в виде rFw.0,что предполагает расположение десятичной точки в любомместе поля w.При вводе, если в поле w десятичная точка отсутствует,последние d цифр рассматриваются как дробная часть

Михайленко К. И. FORTRAN-77: ввод-вывод

Page 14: FORTRAN-77 ввод-выводconst.uimech.org/files/img/fortran/7/f77-07.pdf · 2005. 11. 9. · Работа с файлами Форматный ввод-вывод Перенаправление

Работа с файламиФорматный ввод-вывод

Определение форматаОператор FORMATСпецификации

Спецификации для вещественных значений

E-спецификация rGw.d

± .d︷ ︸︸ ︷ E± ︸ ︷︷ ︸w

write (*,100) a, b100 format (2e9.4)

Используется только при выводе.

Михайленко К. И. FORTRAN-77: ввод-вывод

Page 15: FORTRAN-77 ввод-выводconst.uimech.org/files/img/fortran/7/f77-07.pdf · 2005. 11. 9. · Работа с файлами Форматный ввод-вывод Перенаправление

Работа с файламиФорматный ввод-вывод

Определение форматаОператор FORMATСпецификации

Спецификации для вещественных значений

G-спецификация rEw.d

± .d︷ ︸︸ ︷ ︸ ︷︷ ︸

w

или ± .d︷ ︸︸ ︷ E± ︸ ︷︷ ︸w

write (*,100) a, b100 format (2g9.4)

Используется при вводе и выводе.При вводе работает аналогично F-спецификации.При вводе, если число лежит в диапазоне [0.1, 10d],работает подобно F-спецификации, иначе — подобноE-спецфикации.

Михайленко К. И. FORTRAN-77: ввод-вывод

Page 16: FORTRAN-77 ввод-выводconst.uimech.org/files/img/fortran/7/f77-07.pdf · 2005. 11. 9. · Работа с файлами Форматный ввод-вывод Перенаправление

Работа с файламиФорматный ввод-вывод

Определение форматаОператор FORMATСпецификации

Спецификация для символьных значений

A-спецификация rAwwrite (*,100) ’text’,’ и ещё текст’

100 format (a4,a)

При выводе ширина поля w может не указываться.Если значение w опущено, ширина поля выводаопределяется размером символьного значения.

Михайленко К. И. FORTRAN-77: ввод-вывод

Page 17: FORTRAN-77 ввод-выводconst.uimech.org/files/img/fortran/7/f77-07.pdf · 2005. 11. 9. · Работа с файлами Форматный ввод-вывод Перенаправление

Работа с файламиФорматный ввод-вывод

Определение форматаОператор FORMATСпецификации

Повторители

write (*,100) n, (i, a(i), i=1,5)100 format (i5,5(i3, f9.5))

Михайленко К. И. FORTRAN-77: ввод-вывод

Page 18: FORTRAN-77 ввод-выводconst.uimech.org/files/img/fortran/7/f77-07.pdf · 2005. 11. 9. · Работа с файлами Форматный ввод-вывод Перенаправление

Работа с файламиФорматный ввод-вывод

Определение форматаОператор FORMATСпецификации

Пробел

X-спецификация wXwrite (*,100) n, (i, a(i), i=1,5)

100 format (1x,i5,5(2x,i3,2x,f9.5))

При вводе пропускает w позиций строки.При выводе печатает w пробелов.Желательно использование спецификации 1x в качествепервой спецификации формата.

Михайленко К. И. FORTRAN-77: ввод-вывод

Page 19: FORTRAN-77 ввод-выводconst.uimech.org/files/img/fortran/7/f77-07.pdf · 2005. 11. 9. · Работа с файлами Форматный ввод-вывод Перенаправление

Работа с файламиФорматный ввод-вывод

Определение форматаОператор FORMATСпецификации

Перевод строки

/-спецификацияwrite (*,100) n, (i, a(i), i=1,5)

100 format (1x,i5,5(/,1x,i3,2x,f9.5))

Спецификацию / можно не выделять пробелами.

Михайленко К. И. FORTRAN-77: ввод-вывод

Page 20: FORTRAN-77 ввод-выводconst.uimech.org/files/img/fortran/7/f77-07.pdf · 2005. 11. 9. · Работа с файлами Форматный ввод-вывод Перенаправление

Работа с файламиФорматный ввод-вывод

Определение форматаОператор FORMATСпецификации

Контроль списка вывода

Спецификация :write (*,100) n, (i, a(i), i=1,5)

100 format (1x,i5,100(/,1x,i3,2x,f9.5,:))

Если список вывода исчерпан, завершает вывод.

Михайленко К. И. FORTRAN-77: ввод-вывод

Page 21: FORTRAN-77 ввод-выводconst.uimech.org/files/img/fortran/7/f77-07.pdf · 2005. 11. 9. · Работа с файлами Форматный ввод-вывод Перенаправление

Работа с файламиФорматный ввод-вывод

Определение форматаОператор FORMATСпецификации

Управление кареткой (устаревшее)

Первый символ строки управлял кареткой печатающегоустройства начинает новую строку’+’ не продвигает бумагу (печать на той же строке)’0’ продигает бумагу на 2 строки (пустая строка)’1’ продвигает бумагу до конца страницы

Михайленко К. И. FORTRAN-77: ввод-вывод