Значение ЧТЕНИЯ в Фортране

Subclipse, потому что, по крайней мере, это работает.

Подрывной был блок сбоя для меня до сих пор. Это не играло бы по правилам со всеми моими старыми проектами, которые я проверил с Subclipse.

11
задан francescalus 15 February 2019 в 15:09
поделиться

3 ответа

1 - дескриптор файла, который вы должны открыть с помощью правильного вызова open. 82 - это метка, которая ссылается на формат, означающий, как вы будете сообщать данные с точки зрения визуального форматирования.

        program foo
        implicit none
        integer :: i
        double precision :: a

        write (*,*) 'give me an integer and a float'
        read (*,82) i,a
        write (*,82) i,a
82      format (I4, F8.3)
        end program

В этом примере программа принимает от стандартного ввода (чей номер единицы не указан, поэтому я поставил * ) целое число и значение с плавающей запятой. формат говорит, что целое число занимает первые четыре столбца, тогда у меня есть число с плавающей запятой, которое остается в 8 столбцах, с 3 цифрами после десятичной точки

Если я запускаю программу сейчас, и я не следую точно этому формату, программа будет жаловаться и выйдет из строя, потому что первые 4 столбца должны представлять целое число (из-за формата I4) и «5 3». не является допустимым целым числом

$ ./a.out 
 give me an integer and a float
5 3.5
At line 7 of file test.f (Unit 5)
Traceback: not available, compile with -ftrace=frame or -ftrace=full
Fortran runtime error: Bad value during integer read

. Однако правильная спецификация (обратите внимание на три пробела перед числом 5) будет выполнять правильную операцию (с небольшим допуском, это ' s not that strict)

$ ./a.out 
 give me an integer and a float
   5 3.5
   5   3.500
$ 
16
ответ дан 3 December 2019 в 03:53
поделиться

Он читает из блока 1, используя формат, указанный в операторе с номером 82.

0
ответ дан 3 December 2019 в 03:53
поделиться

Он читает из «единицы» (открытого файла) номер 1, в соответствии с оператором FORMAT на метке 82. Однако, поскольку оператор не перечисляет никаких переменных, ему некуда поместить данные это чтение, которое вряд ли поможет; READ (1,82) FOOBAR более полезно помещать данные, которые он читает, в переменную FOOBAR.

6
ответ дан 3 December 2019 в 03:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: