일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Python
- AVR
- Javscript
- BASE64
- sha1
- Mail Header injection
- 비즈네르 암호
- Navajo alphabet
- Linux
- JavaScript
- php_extract
- vigenere cipher
- overthewire
- reversing
- aslr
- webhacking
- base16
- Masonic Cipher
- 카이사르 암호
- Qrcode
- burpsuit
- Fortran 90
- Pigpen Cipher
- base32
- 시저 암호
- Caesar Cipher
- Web Hacking
- assembly
- sql injection
- cookie
- Today
- Total
My Drive
06. Input / Output 본문
1. 간단한 입출력 ( terminal에서 )
◦ example :
real :: a
print*,'Enter a real number'
read*,a
print*,'input was ',a
2. 일반적인 입출력
read (*,*) / write (*,*) → write (unit=*, fmt=*)
• Units 입출력 유닛, 어디서 데이터를 읽어오고 어디에 데이터를 쓸지
( *은 read에서는 키보드, write에서는 스크린을 의미 )
◦ example :
open(1,file='output')
write(1,*) 'Hello, world!'
close(1)
• Error handling (end=n, err=m)
◦ example :
open (77,file='numbers')
i=0
do
read(77,*,end=200,err=100) t ! 끝나면 end(200)로 에러가 나면 err(100)으로
i=i+1
if(i.gt.m) then
write(*,*) 'array too small.', ' increase m and recompile.'
close(77)
stop
endif
a(i)=t
enddo
100 continue
write(*,*) ’read error in line’,i+1
close(77)
stop
200 continue
write(*,*) i,’ numbers read’
close(77)
write(*,*) a(1:i)
end
• character 변수에 Input/output
◦ example :
character (len=20) :: a
write(a,*) "Hello, world!"
• format
◦ example :
write(*,700) 1,1.23,(7.,8.),'Hello',.true. ! 700 번 label의 format을 적용하여 출력
write(*,701) ! 701 번 label의 format을 적용하여 출력
write(*,702) ! 702 번 label의 format을 적용하여 출력
700 format(i5,e12.4e3,2f8.2,1x,a3,l7)
701 format('12345678901234567890123456789012345678901234567890')
702 format(' 1 2 3 4 5')
write(*,'(i5,e12.4e3,2f8.2,1x,a3,l7)') 1,1.23,(7.,8.),'Hello',.true.
◦ 출력 결과 :
1 0.1230E+001 7.00 8.00 Hel T
12345678901234567890123456789012345678901234567890
1 2 3 4 5
1 0.1230E+001 7.00 8.00 Hel T
만약에 format이 인자 수보다 적으면, 다음 줄로 가서 첫 포맷부터 다시 출력
◦ example :
write(*,700) 1,1.23,(7.,8.),’Hello’,.true.,3,4.
700 format(i5,e12.4e3,2f8.2,1x,a3,l7)
◦ 출력 결과 :
1 0.1230E+001 7.00 8.00 Hel T
3 0.4000E+001
포맷은 다음과 같이 3가지 방법으로 표현할 수 있음
◦ example : 다른 줄에 라벨로 따로 명시
real :: x
character (len=8) :: a
...
write(*,123) x
123 format(es10.2)
◦ example : 직접적으로 명시
write(*,’(es10.2)’) x
◦ example : 변수에 명시
a=’(es10.2)’
write(*,a) x
•
integer : i, b, o, z
real : d, e, f, g, es, en
character : a
logical : l
other : n (number) repeat following descriptor n times
x space
/ new line
' . . . ' literal text
( . . . ) group
p scale
◦ example :
'programming' 카테고리의 다른 글
python colored output (0) | 2015.07.26 |
---|---|
07. Arrays (0) | 2014.10.27 |
05. Decisions (0) | 2014.10.25 |
04. Loops (0) | 2014.10.25 |
03. Expressions (0) | 2014.10.25 |