Fortran-기본 입력 출력
지금까지 키보드에서 데이터를 읽을 수 있음을 확인했습니다. read * 문을 사용하여 화면에 출력을 표시합니다. print*성명을 각각. 이러한 형태의 입출력은free format I / O이며 list-directed 입출력.
자유 형식의 단순 I / O는 다음과 같은 형식을 갖습니다.
read(*,*) item1, item2, item3...
print *, item1, item2, item3
write(*,*) item1, item2, item3...
그러나 포맷 된 I / O는 데이터 전송에 더 많은 유연성을 제공합니다.
형식화 된 입력 출력
형식화 된 입력 출력에는 다음과 같은 구문이 있습니다.
read fmt, variable_list
print fmt, variable_list
write fmt, variable_list
어디,
fmt는 형식 사양입니다.
variable-list는 키보드에서 읽거나 화면에 쓸 변수 목록입니다.
형식 사양은 형식화 된 데이터가 표시되는 방식을 정의합니다. 목록을 포함하는 문자열로 구성됩니다.edit descriptors 괄호 안에.
안 edit descriptor 문자와 숫자가 표시되는 정확한 형식 (예 : 너비, 소수점 이하 자릿수 등)을 지정합니다.
예를 들면
Print "(f6.3)", pi
다음 표는 설명자를 설명합니다-
설명자 | 기술 | 예 |
---|---|---|
나는 | 정수 출력에 사용됩니다. 이는 r, w 및 m의 의미가 아래 표에 나와있는 'rIw.m'형식을 취합니다. 정수 값은 필드에서 올바르게 정의됩니다. 필드 너비가 정수를 수용 할만큼 충분히 크지 않으면 필드는 별표로 채워집니다. |
"(3i5)"인쇄, i, j, k |
에프 | 실수 출력에 사용됩니다. 이는 r, w 및 d의 의미가 아래 표에 나와있는 'rFw.d'형식을 취합니다. 실제 가치는 그 분야에서 정당화됩니다. 필드 너비가 실수를 수용 할만큼 충분히 크지 않으면 필드는 별표로 채워집니다. |
print "(f12.3)", pi |
이자형 | 이것은 지수 표기법의 실제 출력에 사용됩니다. 'E'설명문은 'rEw.d'형식을 취하며 여기서 r, w 및 d의 의미는 아래 표에 나와 있습니다. 실제 가치는 그 분야에서 정당화됩니다. 필드 너비가 실수를 수용 할만큼 충분히 크지 않으면 필드는 별표로 채워집니다. 소수점 세 자리의 실수를 인쇄하려면 필드 너비가 10 이상이어야합니다. 하나는 가수의 부호, 2는 0, 4는 가수, 2는 지수 자체입니다. 일반적으로 w ≥ d + 7. |
print "(e10.3)", 123456.0은 '0.123e + 06'을 제공합니다. |
ES | 이것은 실제 출력 (과학적 표기법)에 사용됩니다. 이는 r, w 및 d의 의미가 아래 표에 나와있는 'rESw.d'형식을 취합니다. 위에서 설명한 'E'설명자는 잘 알려진 전통적인 '과학적 표기법'과 약간 다릅니다. 과학적 표기법은 가수가 0.1 ~ 1.0 범위 인 E 설명자와 달리 1.0 ~ 10.0 범위의 가수를 갖습니다. 실제 가치는 그 분야에서 정당화됩니다. 필드 너비가 실수를 수용 할만큼 충분히 크지 않으면 필드는 별표로 채워집니다. 여기서도 폭 필드는 식 w ≥ d + 7을 만족해야합니다. |
print "(es10.3)", 123456.0은 '1.235e + 05'를 제공합니다. |
ㅏ | 이것은 문자 출력에 사용됩니다. 이것은 r 및 w의 의미가 아래 표에 나와있는 'rAw'형식을 취합니다. 문자 유형은 해당 필드에서 올바르게 정의됩니다. 필드 너비가 문자열을 수용 할만큼 충분히 크지 않은 경우 필드는 문자열의 첫 번째 'w'문자로 채워집니다. |
print "(a10)", str |
엑스 | 이것은 공간 출력에 사용됩니다. 이것은 'nX'형식을 취합니다. 여기서 'n'은 원하는 공간의 수입니다. |
print "(5x, a10)", str |
/ | 슬래시 설명자 – 빈 줄을 삽입하는 데 사용됩니다. 이것은 '/'형식을 취하고 다음 데이터 출력이 새 행에 있도록합니다. |
print "(/, 5x, a10)", str |
다음 기호는 형식 설명자와 함께 사용됩니다-
Sr. 아니요 | 기호 및 설명 |
---|---|
1 | c 열 번호 |
2 | d 실제 입력 또는 출력에 대한 소수점 이하 자릿수 |
삼 | m 표시 할 최소 자릿수 |
4 | n 건너 뛸 공백 수 |
5 | r 반복 횟수 – 설명자 또는 설명자 그룹을 사용하는 횟수 |
6 | w 필드 너비 – 입력 또는 출력에 사용할 문자 수 |
예 1
program printPi
pi = 3.141592653589793238
Print "(f6.3)", pi
Print "(f10.7)", pi
Print "(f20.15)", pi
Print "(e16.4)", pi/100
end program printPi
위의 코드가 컴파일되고 실행되면 다음과 같은 결과가 생성됩니다.
3.142
3.1415927
3.141592741012573
0.3142E-01
예 2
program printName
implicit none
character (len = 15) :: first_name
print *,' Enter your first name.'
print *,' Up to 20 characters, please'
read *,first_name
print "(1x,a)",first_name
end program printName
위 코드가 컴파일되고 실행되면 다음과 같은 결과가 생성됩니다. (사용자가 Zara라는 이름을 입력했다고 가정)
Enter your first name.
Up to 20 characters, please
Zara
예제 3
program formattedPrint
implicit none
real :: c = 1.2786456e-9, d = 0.1234567e3
integer :: n = 300789, k = 45, i = 2
character (len=15) :: str="Tutorials Point"
print "(i6)", k
print "(i6.3)", k
print "(3i10)", n, k, i
print "(i10,i3,i5)", n, k, i
print "(a15)",str
print "(f12.3)", d
print "(e12.4)", c
print '(/,3x,"n = ",i6, 3x, "d = ",f7.4)', n, d
end program formattedPrint
위의 코드가 컴파일되고 실행되면 다음과 같은 결과가 생성됩니다.
45
045
300789 45 2
300789 45 2
Tutorials Point
123.457
0.1279E-08
n = 300789 d = *******
형식 문
format 문을 사용하면 하나의 문에서 문자, 정수 및 실제 출력을 혼합하고 일치시킬 수 있습니다. 다음 예제는 이것을 보여줍니다-
program productDetails
implicit none
character (len = 15) :: name
integer :: id
real :: weight
name = 'Ardupilot'
id = 1
weight = 0.08
print *,' The product details are'
print 100
100 format (7x,'Name:', 7x, 'Id:', 1x, 'Weight:')
print 200, name, id, weight
200 format(1x, a, 2x, i3, 2x, f5.2)
end program productDetails
위의 코드가 컴파일되고 실행되면 다음과 같은 결과가 생성됩니다.
The product details are
Name: Id: Weight:
Ardupilot 1 0.08