검수요청.png검수요청.png

"입출력문"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
5번째 줄: 5번째 줄:
  
 
==C언어==
 
==C언어==
C언어에서는 [[기억장치]]에 저장되는 파일을 다루는 것과 마찬가지 방식으로 입출력 장치를 다룬다. 따라서 [[키보드]], [[모니터]]와 같은 대부분의 콘솔 장치도 C 프로그램에서는 자동으로 열리는 파일처럼 다뤄진다. C언어에서는 stdin 표준 스트림을 통해 입력 장치를 다루며, stdout 표준 스트림을 통해 출력 장치를 다룬다.<ref name="티시피"></ref> C언어의 대표적인 입출력문은 [[printf]]와 [[scanf]]이다. printf()는 출력, scanf()은 입력을 구성한다.
+
C언어에서는 [[기억장치]]에 저장되는 파일을 다루는 것과 마찬가지 방식으로 입출력 장치를 다룬다. 따라서 [[키보드]], [[모니터]]와 같은 대부분의 콘솔 장치도 C 프로그램에서는 자동으로 열리는 파일처럼 다뤄진다. C언어에서는 stdin 표준 스트림을 통해 입력 장치를 다루며, stdout 표준 스트림을 통해 출력 장치를 다룬다.<ref name="티시피"></ref> C언어의 대표적인 입출력문은 [[scanf]]와 [[printf]]이다. scanf()은 입력, printf()는 출력을 구성한다.
  
 +
=== scanf ===
 +
; scanf() 예제
 +
#include<stdio.h>
 +
 +
int main()
 +
{
 +
  int a, b;
 +
 +
  printf("입력 : ");
 +
  scanf("%3d%3d", &a, &b);
 +
  printf("%d %d\n", a, b);
 +
 +
  return 0;
 +
}
 +
 +
결과값
 +
123456
 +
123 456<ref name="특징"></ref>
 +
 +
; scanf() 예제 2
 +
#include<stdio.h>
 +
 +
int main()
 +
{
 +
  int dec, oct, hex;
 +
 +
  printf("입력 : ");
 +
  scanf("%d %o %x", &dec, &oct, &hex);
 +
  printf("%d %d %d\n", dec, oct, hex);
 +
 +
  return 0;
 +
}
 +
 +
결과값
 +
10 10 10
 +
10 8 16<ref name="특징"></ref>
 +
 +
=== printf ===
 
; printf() 예제 1
 
; printf() 예제 1
 
  #include<stdio.h>
 
  #include<stdio.h>
21번째 줄: 59번째 줄:
 
   return 0;
 
   return 0;
 
  }
 
  }
 +
 
  결과 값
 
  결과 값
 
       1          -1
 
       1          -1
45번째 줄: 84번째 줄:
 
   return 0;
 
   return 0;
 
  }
 
  }
 +
 
  결과값
 
  결과값
 
       1.235
 
       1.235
70번째 줄: 110번째 줄:
 
   return 0;
 
   return 0;
 
  }
 
  }
 +
 
  결과 값
 
  결과 값
 
  10진법 : 11
 
  10진법 : 11
77번째 줄: 118번째 줄:
 
  지수표기 : 1.234500e-02
 
  지수표기 : 1.234500e-02
 
  지수표기 : 1.234500E-02<ref name="특징"></ref>
 
  지수표기 : 1.234500E-02<ref name="특징"></ref>
 
; scanf() 예제
 
#include<stdio.h>
 
 
int main()
 
{
 
  int a, b;
 
 
  printf("입력 : ");
 
  scanf("%3d%3d", &a, &b);
 
  printf("%d %d\n", a, b);
 
 
  return 0;
 
}
 
결과값
 
123456
 
123 456<ref name="특징"></ref>
 
 
; scanf() 예제 2
 
#include<stdio.h>
 
 
int main()
 
{
 
  int dec, oct, hex;
 
 
  printf("입력 : ");
 
  scanf("%d %o %x", &dec, &oct, &hex);
 
  printf("%d %d %d\n", dec, oct, hex);
 
 
  return 0;
 
}
 
결과값
 
10 10 10
 
10 8 16<ref name="특징"></ref>
 
  
 
==파이썬==
 
==파이썬==
124번째 줄: 131번째 줄:
 
  name = input('아무것도 입력하지 말고 EOF(Ctrl+D 또는 Ctrl+Z+Enter)를 입력해보세요');
 
  name = input('아무것도 입력하지 말고 EOF(Ctrl+D 또는 Ctrl+Z+Enter)를 입력해보세요');
 
   
 
   
  실행결과
+
  실행 결과
 
  이름을 입력하세요 한사람
 
  이름을 입력하세요 한사람
 
  이름 : 한사람, type : <class 'str'>
 
  이름 : 한사람, type : <class 'str'>
136번째 줄: 143번째 줄:
  
 
=== print ===
 
=== print ===
파이썬에서 표준 출력 함수로 [[print]] 함수를 지원한다. 출력 시 출력 대상들의 사이에 구분자를 넣을때는 ','를 기술한다. 그리고 마지막 문자열을 출력하고 출력할 문자는 end를 쓴다. 출력 방향을 변경 할 때는 file을 기술한다. 또한 스트림을 강제적으로 flush할지 지정할 때는 flush를 기술한다.
+
파이썬에서 표준 출력 함수로 [[print]] 함수를 지원한다. 출력 시 출력 대상들의 사이에 구분자를 넣을때는 ','를 기술한다. 그리고 마지막 문자열을 출력하고 출력할 문자는 end를 쓴다. 출력 방향을 변경할 때는 file을 쓴다. 또한 스트림을 강제적으로 flush할지 지정할 때는 flush를 기술한다.
  
; 예제
 
 
  print("하나","둘","셋",1,2,3)  
 
  print("하나","둘","셋",1,2,3)  
 
  print("하나","둘","셋",1,2,3,sep='-')  
 
  print("하나","둘","셋",1,2,3,sep='-')  
158번째 줄: 164번째 줄:
  
 
마지막에 출력한 "Hello Python!!"이라는 [[문자열]]은 보이지 않는다. 하지만 "test.txt" 파일이 생성되었으며 파일의 내용으로 "Hello Python!!"이란 문자열이 저장되었음이 확인된다.
 
마지막에 출력한 "Hello Python!!"이라는 [[문자열]]은 보이지 않는다. 하지만 "test.txt" 파일이 생성되었으며 파일의 내용으로 "Hello Python!!"이란 문자열이 저장되었음이 확인된다.
===보조===
 
보조 입출력문은 입출력문을 도와주는 것으로 3가지인 rewind, backspace, endfile문으로 나타낸다.
 
  
====rewind문====
+
; 문자열 출력
rewind문은 스트림 시작 부분에 파일 포인터를 설정하는 것으로 다음과 같이 나타낸다. 여러 번의 스트림 사용 시에 유용하며 다음과 같이 나타낸다.
+
파이썬에서 print 함수는 작은따옴표이든 큰따옴표이든 문자열 출력 시 같이 사용할 수 있다. 작은 따옴표안에 큰따옴표가 가능하고, 큰 따옴표안에 작은따옴표가 가능하다. 큰따옴표안에서 큰따옴표를 출력하려면 \"로 해야 하고, 작은따옴표안에서 작은따옴표를 출력하려면 \'로 해야 한다. 동일한 문자열을 여러번 출력시 " * 횟수"를 사용한다.
* 예시(C언어)
+
 
 +
print('Hello World!!')
 +
print("Hello World!!")
 +
print("나의 이름은 '한사람'입니다.")
 +
print('나의 이름은 "한사람"입니다.')
 +
print("나의 이름은 \"한사람\"입니다.")
 +
print('나의 이름은 \'한사람\'입니다.')
 +
print('-' * 40)
 +
 +
실행 결과
 +
Hello World!!
 +
Hello World!!
 +
나의 이름은 '한사람'입니다.
 +
나의 이름은 "한사람"입니다.
 +
나의 이름은 "한사람"입니다.
 +
나의 이름은 '한사람'입니다.
 +
----------------------------------------
 +
 
 +
; 확장 문자 출력
 +
기본 확장 문자(escape sequence)를 지원한다. 숫자 형식의 8진법과 16진법 확장 문자들과 [[유니코드]] 확장 문자들 8진수 또는 16진수 확장 문자를 사용하여 아스키 문자를 포함시킬 수 있다. 8진수 확장 문자는 backslash()와 세 자릿수 8진수 숫자를 사용한다. 결과로는 8진수 확장 문자에 해당하는 아스키 문자가 출력된다. 16진수 확장 문자도 이와 비슷하지만 "\"가 아니라 "\x"로 시작되며 16진수 숫자로 구성되는 점이 다르다. 이 확장 문자는 문자가 더 이상 16진수가 아닐 때 종료된다. 예를 들어 문자 n은 아스키 문자표에서 십진수 값 109이다. 이는 8진수로 하면 156이며 16진수로 하면 6E이다.
 +
 
 +
*'''\'''' : 따옴표 문자
 +
*'''\"''' : 쌍따옴표 문자
 +
*'''\''' : backslash 문자
 +
*'''\a''' : bell 문자
 +
*'''\b''' : backslash 문자
 +
*'''\f''' : Formfeed 문자
 +
*'''\n''' : newline 문 \r : carriage return 문자(\n와 동일하지 않다.)
 +
*'''\t''' : tab 문자
 +
*'''\v''' : vertical tab 문자
 +
 
 +
print('Hello \tWorld!!')
 +
print("Hello \nWorld!!")
 +
print("나의 이름은 \"한사람\"입니다.")
 +
print('나의 이름은 \'한사람\'입니다.')
 +
print('-' * 40)
 +
print('1 \n')
 +
print('2 \012')
 +
print('3 \x0A')
 +
print('-' * 40)
 +
print('n')
 +
print('\156')
 +
print('\x6E')
 +
print('-' * 40)
 +
 +
실행 결과
 +
Hello  World!!
 +
Hello
 +
World!!
 +
나의 이름은 "한사람"입니다.
 +
나의 이름은 '한사람'입니다.
 +
----------------------------------------
 +
1
 +
 +
 +
 +
3
 +
 +
----------------------------------------
 +
n
 +
n
 +
n
 +
----------------------------------------
 +
 
 +
; 길이와 정렬
 +
*{:길이} : 출력할 데이터의 길이를 지정한다. 문자열(왼쪽 정렬), 숫자(오른쪽 정렬)
 +
*{:<길이} : 왼쪽 정렬
 +
*{:>길이} : 오른쪽 정렬
 +
*{:^길이} : 가운데 정렬
 +
 
 +
print('Python is [{:15}]'.format('good'))
 +
print('Python is [{:<15}]'.format('good'))
 +
print('Python is [{:>15}]'.format('good'))
 +
print('Python is [{:^15}]'.format('good'))
 +
print('당신의 나이는 [{:15}]세'.format(22))
 +
print('당신의 나이는 [{:<15}]세'.format(22))
 +
print('당신의 나이는 [{:>15}]세'.format(22))
 +
print('당신의 나이는 [{:<15}]세'.format(22))
 +
print('-' * 40)
 +
 +
실행 결과
 +
Python is [good          ]
 +
Python is [good          ]
 +
Python is [          good]
 +
Python is [    good      ]
 +
당신의 나이는 [            22]세
 +
당신의 나이는 [22            ]세
 +
당신의 나이는 [            22]세
 +
당신의 나이는 [22            ]세
 +
----------------------------------------<ref> 〈[https://wikidocs.net/20403 02. Python(파이썬) 표준 출력]〉, 《위키독스》 </ref>
 +
 
 +
== 자바 ==
 +
=== System.out.print ===
 +
System.out.print는 가장 기본적인 출력 함수이다. 형식은 System.out.print(x)이며, 여기서 x는 모든 자료형의 값이나 표현식이 될 수 있다. x라는 매개변수가 이미 문자열이 아닌 경우 [[String]] 자료형의 값으로 변환된 다음 문자열이 표준 출력(standard output)이라 불리는 목적지로 출력된다. System.out.print는 실수의 소수점 아래 숫자를 가능한 한 출력한다. 예를 들어 π은 3.1415926535899793으로 출력되며, 돈을 나타내야 하는 숫자는 1050.0 또는 43.575로 출력될 수 있다. 자바에는 '형식화된 출력(formatted output)'이란 기능이 있어 실수 및 다른 값들이 인쇄되는 방식을 쉽게 제어할 수 있다.
 +
 
 +
;System.out.println
 +
System.out.println(x)은 System.out.print와 동일한 텍스트를 출력하지만, 줄바꿈(line feed)에 의해 해당 텍스트 뒤를 이어가는데, 이는 후속된 출력이 다음 행에 있음을 의미한다. 줄바꿈만 출력하는 System.out.println()이라는 매개변수 없는 해당 함수를 사용할 수 있다.
 +
 
 +
;System.out.printf
 +
System.out.printf 기능은 형식화된 출력을 생성하는 데 사용할 수 있다. System.out.printf는 하나 이상의 매개변수를 사용한다. 첫 번째 매개변수는 출력의 형식을 지정하는 String이다. 이 매개변수를 형식 문자열(format string)이라고 한다. 나머지 매개변수들은 출력되어야 할 값을 명시한다.<ref> 〈[https://wikidocs.net/123157 제4절 텍스트 입력 및 출력]〉, 《위키독스》 </ref>
 +
 
 +
System.out.print(7);        // print() 메소드는 줄 바꿈을 하지 않음.
 +
System.out.println(3);      // 정수 출력
 +
System.out.println(3.14);    // 실수 출력
 +
System.out.println("자바!"); // 문자열 출력
 +
System.out.println("문자열끼리의 " + "연결도 가능합니다.");
 +
System.out.println("숫자" + 3 + "과 문자열의 연결도 가능합니다.");
 +
 +
실행 결과
 +
73
 +
3.14
 +
자바!!
 +
문자열끼리의 연결도 가능합니다.
 +
숫자3과 문자열의 연결도 가능합니다.
 +
 
 +
==보조==
 +
보조 입출력문은 입출력문을 도와주는 것으로 3가지인 [[rewind]], [[backspace]], [[endfile]]문으로 나타낸다.
 +
 
 +
===rewind문===
 +
rewind문은 스트림 시작 부분에 파일 포인터를 설정하는 것으로 다음과 같이 나타낸다. 여러 번의 스트림 사용 시에 유용하다.
 +
 
 +
; 예시
 
  #include<stdio.h>   
 
  #include<stdio.h>   
 
  void main() {
 
  void main() {
189번째 줄: 314번째 줄:
 
  this is rewind()function from yiibai tutorials.
 
  this is rewind()function from yiibai tutorials.
  
====backspace문====
+
===backspace문===
현재 활성 위치의 라인에서 활성 위치를 한 스페이스 뒤로 옮김(키보드의 backspace 기능과 동일) 표시 : \b로 표시한다.
+
backspace문은 현재 활성 위치의 라인에서 활성 위치를 한 스페이스 뒤로 옮기는 명령이다. 키보드의 backspace 기능과 동일하며, \b로 표시한다.
*예시
+
 
 +
;예시
 
  #include <stdioh>
 
  #include <stdioh>
 
  int main()
 
  int main()
219번째 줄: 345번째 줄:
 
  \ ' "<ref> atomic0x90 (Yujun Han), 〈[https://atomic0x90.github.io/c-language/2019/05/28/C-Language-escape-sequence.html 이스케이프 시퀀스(escape sequence) 정리]〉, 《깃허브》,  2019-05-28 </ref>
 
  \ ' "<ref> atomic0x90 (Yujun Han), 〈[https://atomic0x90.github.io/c-language/2019/05/28/C-Language-escape-sequence.html 이스케이프 시퀀스(escape sequence) 정리]〉, 《깃허브》,  2019-05-28 </ref>
  
====endfile문====
+
=== endfile문 ===
파일의 끝에 도달했을 때 언제나 특별한 값을 반환하도록 하는데, 그 값을 EOF(End Of File)라고 하며, 실제로 이 값은 -1을 나타낸다.
+
endfile문은 [[C언어]]에서 [[운영체제]]와 상관없이, 파일의 끝에 도달했을 때 언제나 특별한 값을 반환하도록 한다. 그 값을 EOF(End Of File)라고 하며, 실제로 이 값은 -1을 나타낸다.
*예시
+
 
 +
;예시
 
  #include <stdio.h>
 
  #include <stdio.h>
 
   
 
   
269번째 줄: 396번째 줄:
 
* 김경미 교수, 〈[http://www.kmooc.kr/assets/courseware/41d8eadf3d66ca15b2ff1051e5169f7d/asset-v1:HGUk+HGU02+2017_T1+type@asset+block/3%EC%A3%BC%EC%B0%A8_01_%EC%9E%85%EC%B6%9C%EB%A0%A5%EB%AC%B8%EC%9D%B4%ED%95%B4%EC%99%80%ED%99%9C%EC%9A%A9.pdf 입출력문 이해와 활용]〉, 《한동대학교》  
 
* 김경미 교수, 〈[http://www.kmooc.kr/assets/courseware/41d8eadf3d66ca15b2ff1051e5169f7d/asset-v1:HGUk+HGU02+2017_T1+type@asset+block/3%EC%A3%BC%EC%B0%A8_01_%EC%9E%85%EC%B6%9C%EB%A0%A5%EB%AC%B8%EC%9D%B4%ED%95%B4%EC%99%80%ED%99%9C%EC%9A%A9.pdf 입출력문 이해와 활용]〉, 《한동대학교》  
 
* 〈[https://wikidocs.net/20464 03. Python(파이썬) 표준 입력]〉, 《위키독스》
 
* 〈[https://wikidocs.net/20464 03. Python(파이썬) 표준 입력]〉, 《위키독스》
 +
* 〈[https://wikidocs.net/20403 02. Python(파이썬) 표준 출력]〉, 《위키독스》
 +
* 〈[https://wikidocs.net/123157 제4절 텍스트 입력 및 출력]〉, 《위키독스》
  
 
==같이 보기==
 
==같이 보기==
 
* [[입력문]]
 
* [[입력문]]
 
* [[출력문]]
 
* [[출력문]]
* [[read]]
 
* [[write]]
 
 
* [[rewind]]
 
* [[rewind]]
 
* [[backspace]]
 
* [[backspace]]

2021년 9월 16일 (목) 10:17 판

입출력문(input-output statement)은 외부 매체 사이의 입출력이나 관련 동작을 하는 문장이다.[1]

개요

입출력문은 사용자에게 입력을 받거나 촐력할 때 쓰는 명령어이다. 입력문이 있으면 출력문도 같이 쓰게 된다. 출력문보다 입력문이 복잡해 보이지만, 입력한 값은 저장해야 프로그램 내에서 사용 가능하다. 또, 저장할 때는 변수가 필요하다. 그렇게 입력한 값의 성격에 맞는 변수명을 만들어서, 입력한 값을 저장한다. 이후 저장된 값은 변수를 통해서 접근할 수 있다.[2] 또한 컴퓨터 처리 분야에서, 컴퓨터의 5대 기능의 제어, 연산, 입력, 출력, 기억 가운데, 입력과 출력의 기능을 꺼내 입출력이라고 이름 붙인다고 여겨진다. 보통 입력 장치를 이용하고 컴퓨터에 사용자가 데이터, 정보 등을 전달하여 출력 장치를 이용하고, 컴퓨터가 사용자에게 데이터 등을 전달한다. 또, 컴퓨터끼리 정보를 제공하는 통신(컴퓨터 네트워크)도 입출력 기능에 해당한다.[3]

C언어

C언어에서는 기억장치에 저장되는 파일을 다루는 것과 마찬가지 방식으로 입출력 장치를 다룬다. 따라서 키보드, 모니터와 같은 대부분의 콘솔 장치도 C 프로그램에서는 자동으로 열리는 파일처럼 다뤄진다. C언어에서는 stdin 표준 스트림을 통해 입력 장치를 다루며, stdout 표준 스트림을 통해 출력 장치를 다룬다.[4] C언어의 대표적인 입출력문은 scanfprintf이다. scanf()은 입력, printf()는 출력을 구성한다.

scanf

scanf() 예제
#include<stdio.h>

int main()
{
  int a, b;

  printf("입력 : ");
  scanf("%3d%3d", &a, &b);
  printf("%d %d\n", a, b);

  return 0;
}

결과값
123456
123 456[5]
scanf() 예제 2
#include<stdio.h>

int main()
{
  int dec, oct, hex;

  printf("입력 : ");
  scanf("%d %o %x", &dec, &oct, &hex);
  printf("%d %d %d\n", dec, oct, hex);

  return 0;
}

결과값
10 10 10
10 8 16[5]

printf

printf() 예제 1
#include<stdio.h>

int main()
{
  printf("%7d     %7d\n", 1, -1);
  printf("%7d     %7d\n", 12, -12);
  printf("%7d     %7d\n", 123, -123);
  printf("%-7d     %-7d\n", 1, -1);
  printf("%-7d     %-7d\n", 12, -12);
  printf("%-7d     %-7d\n", 123, -123);

  return 0;
}

결과 값
      1          -1
     12         -12
    123        -123
1           -1     
12          -12    
123         -123[5]
printf() 예제 2
#include<stdio.h>

int main()
{
  printf("%10.3f\n", 1.23456789);
  printf("%10.4f\n", 1.23456789);
  printf("%10.5f\n", 1.23456789);
  printf("%10.6f\n", 1.23456789);

  printf("%.3f\n", 1.23456789);
  printf("%.4f\n", 1.23456789);
  printf("%.5f\n", 1.23456789);

  return 0;
}

결과값
     1.235
    1.2346
   1.23457
  1.234568
1.235
1.2346
1.23457[5]
printf() 예제 3
#include<stdio.h>

int main()
{
  printf("10진법 : %d\n", 11);
  printf("8진법 : %o\n", 11);
  printf("16진법 : %x\n", 11);


  printf("소수표기 : %f\n", 0.012345);
  printf("지수표기 : %e\n", 0.012345);
  printf("지수표기 : %E\n", 0.012345);

  return 0;
}

결과 값
10진법 : 11
8진법 : 13
16진법 : b
소수표기 : 0.012345
지수표기 : 1.234500e-02
지수표기 : 1.234500E-02[5]

파이썬

input

파이썬에서는 표준 입력 함수로 input 함수를 지원한다. input()은 표준입력장치, 즉 키보드로부터 문자열을 입력받는다. input('문자열')은 문자열을 출력하고 표준입력장치로부터 문자열을 입력받는다. 그렇게 입력된 값은 문자열이다. 단, 사용자가 EOF(*nix: Ctrl-D, Windows: Ctrl-Z+Return)을 입력하면 EOFError를 발생시킨다.

예제
print('이름을 입력하세요', end="")
name = input();
print("이름 : {0}, type : {1}".format(name,type(name)))
name = input('이름을 입력하세요 ');
print("이름 : {0}, type : {1}".format(name,type(name)))
name = input('아무것도 입력하지 말고 EOF(Ctrl+D 또는 Ctrl+Z+Enter)를 입력해보세요');

실행 결과
이름을 입력하세요 한사람
이름 : 한사람, type : <class 'str'>
이름을 입력하세요 두사람
이름 : 두사람, type : <class 'str'>
아무것도 입력하지 말고 EOF(Ctrl+D 또는 Ctrl+Z+Enter)를 입력해보세요^D
Traceback (most recent call last):
  File "C:/PyThonProjects/Ex01/basic03/Ex13_input1.py", line 7, in <module>
    name = input('아무것도 입력하지 말고 EOF(Ctrl+D 또는 Ctrl+Z+Enter)를 입력해보세요');
EOFError: EOF when reading a line[6]

print

파이썬에서 표준 출력 함수로 print 함수를 지원한다. 출력 시 출력 대상들의 사이에 구분자를 넣을때는 ','를 기술한다. 그리고 마지막 문자열을 출력하고 출력할 문자는 end를 쓴다. 출력 방향을 변경할 때는 file을 쓴다. 또한 스트림을 강제적으로 flush할지 지정할 때는 flush를 기술한다.

print("하나","둘","셋",1,2,3) 
print("하나","둘","셋",1,2,3,sep='-') 
print("첫번째 값")
print("두번째 값") # 다른 줄에 출력
print("첫번째 값", end=" ---> ")
print("두번째 값") # 같은 줄에 출력
# 출력 방향 변경
file = open("test.txt","w")
print("Hello Python!!", file=file) # 파일로 출력
file.close()

실행 결과
하나 둘 셋 1 2 3 
하나-둘-셋-1-2-3
첫번째 값
두번째 값
첫번째 값 ---> 두번째 값

마지막에 출력한 "Hello Python!!"이라는 문자열은 보이지 않는다. 하지만 "test.txt" 파일이 생성되었으며 파일의 내용으로 "Hello Python!!"이란 문자열이 저장되었음이 확인된다.

문자열 출력

파이썬에서 print 함수는 작은따옴표이든 큰따옴표이든 문자열 출력 시 같이 사용할 수 있다. 작은 따옴표안에 큰따옴표가 가능하고, 큰 따옴표안에 작은따옴표가 가능하다. 큰따옴표안에서 큰따옴표를 출력하려면 \"로 해야 하고, 작은따옴표안에서 작은따옴표를 출력하려면 \'로 해야 한다. 동일한 문자열을 여러번 출력시 " * 횟수"를 사용한다.

print('Hello World!!')
print("Hello World!!")
print("나의 이름은 '한사람'입니다.")
print('나의 이름은 "한사람"입니다.')
print("나의 이름은 \"한사람\"입니다.")
print('나의 이름은 \'한사람\'입니다.')
print('-' * 40) 

실행 결과
Hello World!!
Hello World!! 
나의 이름은 '한사람'입니다.
나의 이름은 "한사람"입니다.
나의 이름은 "한사람"입니다.
나의 이름은 '한사람'입니다.
----------------------------------------
확장 문자 출력

기본 확장 문자(escape sequence)를 지원한다. 숫자 형식의 8진법과 16진법 확장 문자들과 유니코드 확장 문자들 8진수 또는 16진수 확장 문자를 사용하여 아스키 문자를 포함시킬 수 있다. 8진수 확장 문자는 backslash()와 세 자릿수 8진수 숫자를 사용한다. 결과로는 8진수 확장 문자에 해당하는 아스키 문자가 출력된다. 16진수 확장 문자도 이와 비슷하지만 "\"가 아니라 "\x"로 시작되며 16진수 숫자로 구성되는 점이 다르다. 이 확장 문자는 문자가 더 이상 16진수가 아닐 때 종료된다. 예를 들어 문자 n은 아스키 문자표에서 십진수 값 109이다. 이는 8진수로 하면 156이며 16진수로 하면 6E이다.

  • \' : 따옴표 문자
  • \" : 쌍따옴표 문자
  • \ : backslash 문자
  • \a : bell 문자
  • \b : backslash 문자
  • \f : Formfeed 문자
  • \n : newline 문 \r : carriage return 문자(\n와 동일하지 않다.)
  • \t : tab 문자
  • \v : vertical tab 문자
print('Hello \tWorld!!')
print("Hello \nWorld!!")
print("나의 이름은 \"한사람\"입니다.")
print('나의 이름은 \'한사람\'입니다.')
print('-' * 40)
print('1 \n')
print('2 \012')
print('3 \x0A')
print('-' * 40)
print('n')
print('\156')
print('\x6E')
print('-' * 40) 

실행 결과
Hello   World!!
Hello 
World!! 
나의 이름은 "한사람"입니다.
나의 이름은 '한사람'입니다.
----------------------------------------
1 

2  

3 

----------------------------------------
n
n
n
----------------------------------------
길이와 정렬
  • {:길이} : 출력할 데이터의 길이를 지정한다. 문자열(왼쪽 정렬), 숫자(오른쪽 정렬)
  • {:<길이} : 왼쪽 정렬
  • {:>길이} : 오른쪽 정렬
  • {:^길이} : 가운데 정렬
print('Python is [{:15}]'.format('good'))
print('Python is [{:<15}]'.format('good'))
print('Python is [{:>15}]'.format('good'))
print('Python is [{:^15}]'.format('good'))
print('당신의 나이는 [{:15}]세'.format(22))
print('당신의 나이는 [{:<15}]세'.format(22))
print('당신의 나이는 [{:>15}]세'.format(22))
print('당신의 나이는 [{:<15}]세'.format(22))
print('-' * 40)

실행 결과
Python is [good           ]
Python is [good           ]
Python is [           good]
Python is [     good      ] 
당신의 나이는 [             22]세
당신의 나이는 [22             ]세
당신의 나이는 [             22]세
당신의 나이는 [22             ]세
----------------------------------------[7]

자바

System.out.print

System.out.print는 가장 기본적인 출력 함수이다. 형식은 System.out.print(x)이며, 여기서 x는 모든 자료형의 값이나 표현식이 될 수 있다. x라는 매개변수가 이미 문자열이 아닌 경우 String 자료형의 값으로 변환된 다음 문자열이 표준 출력(standard output)이라 불리는 목적지로 출력된다. System.out.print는 실수의 소수점 아래 숫자를 가능한 한 출력한다. 예를 들어 π은 3.1415926535899793으로 출력되며, 돈을 나타내야 하는 숫자는 1050.0 또는 43.575로 출력될 수 있다. 자바에는 '형식화된 출력(formatted output)'이란 기능이 있어 실수 및 다른 값들이 인쇄되는 방식을 쉽게 제어할 수 있다.

System.out.println

System.out.println(x)은 System.out.print와 동일한 텍스트를 출력하지만, 줄바꿈(line feed)에 의해 해당 텍스트 뒤를 이어가는데, 이는 후속된 출력이 다음 행에 있음을 의미한다. 줄바꿈만 출력하는 System.out.println()이라는 매개변수 없는 해당 함수를 사용할 수 있다.

System.out.printf

System.out.printf 기능은 형식화된 출력을 생성하는 데 사용할 수 있다. System.out.printf는 하나 이상의 매개변수를 사용한다. 첫 번째 매개변수는 출력의 형식을 지정하는 String이다. 이 매개변수를 형식 문자열(format string)이라고 한다. 나머지 매개변수들은 출력되어야 할 값을 명시한다.[8]

System.out.print(7);         // print() 메소드는 줄 바꿈을 하지 않음.
System.out.println(3);       // 정수 출력
System.out.println(3.14);    // 실수 출력
System.out.println("자바!"); // 문자열 출력
System.out.println("문자열끼리의 " + "연결도 가능합니다.");
System.out.println("숫자" + 3 + "과 문자열의 연결도 가능합니다.");

실행 결과
73
3.14
자바!!
문자열끼리의 연결도 가능합니다.
숫자3과 문자열의 연결도 가능합니다.

보조

보조 입출력문은 입출력문을 도와주는 것으로 3가지인 rewind, backspace, endfile문으로 나타낸다.

rewind문

rewind문은 스트림 시작 부분에 파일 포인터를 설정하는 것으로 다음과 같이 나타낸다. 여러 번의 스트림 사용 시에 유용하다.

예시
#include<stdio.h>   
void main() {
    FILE *fp;
    char c;

    fp = fopen("string-file.txt", "r");
    while ((c = fgetc(fp)) != EOF) {
        printf("%c", c);
    }

    rewind(fp);//moves the file pointer at beginning of the file  
   //不用重新打开文件,直接从头读取内容
    while ((c = fgetc(fp)) != EOF) {
        printf("%c", c);
    }

    fclose(fp);

}
텍스트 파일 : string-file.txt
this is rewind()function from yiibai tutorials.
결과
this is rewind()function from yiibai tutorials.
this is rewind()function from yiibai tutorials.

backspace문

backspace문은 현재 활성 위치의 라인에서 활성 위치를 한 스페이스 뒤로 옮기는 명령이다. 키보드의 backspace 기능과 동일하며, \b로 표시한다.

예시
#include <stdioh>
int main()
{
	char test_octal_number = '\141';		// \ooo
	char test_hexadecimal_number = '\x41';		// \xhh

	printf("%c \n",test_octal_number);		// \n
	printf("%c \n",test_hexadecimal_number);

	printf("AB\bC\n");		// \b

	printf("T\tA\tB\n");		// \t

	printf("123456\r789\n");	// \r

	printf("\\ \' \" \n");		// \\ \' \"

	return 0;
}
결과
a 
A 
AC
T	A	B
789456
\ ' "[9]

endfile문

endfile문은 C언어에서 운영체제와 상관없이, 파일의 끝에 도달했을 때 언제나 특별한 값을 반환하도록 한다. 그 값을 EOF(End Of File)라고 하며, 실제로 이 값은 -1을 나타낸다.

예시
#include <stdio.h>

int main(void)

{

    char ch;

    printf("EOF가 입력될 때까지 영문자를 계속 입력받습니다 :\n");

    printf("(윈도우에서 EOF의 강제 발생은 Ctrl+Z를 누르고 나서 Enter를 누르면 됩니다)\n");

 

    while ((ch = getchar()) != EOF)

    {

        putchar(ch);

    }

    return 0;

}
실행 결과
EOF가 입력될 때까지 영문자를 계속 입력받습니다 : 
(윈도우에서 EOF의 강제 발생은 Ctrl+Z를 누르고 나서 Enter를 누르면 된다)
a
a
b
b
-1
-1
^Z[4]

각주

  1. 입출력문〉, 《네이버 지식백과》
  2. 김경미 교수, 〈입출력문 이해와 활용〉, 《한동대학교》
  3. 입출력〉, 《위키백과》
  4. 4.0 4.1 기본적인 입출력〉, 《티시피스쿨》
  5. 5.0 5.1 5.2 5.3 5.4 jhh0712, 〈C언어 표준 입출력〉, 《네이버 블로그》, 2019-03-22
  6. 03. Python(파이썬) 표준 입력〉, 《위키독스》
  7. 02. Python(파이썬) 표준 출력〉, 《위키독스》
  8. 제4절 텍스트 입력 및 출력〉, 《위키독스》
  9. atomic0x90 (Yujun Han), 〈이스케이프 시퀀스(escape sequence) 정리〉, 《깃허브》, 2019-05-28

참고자료

같이 보기


  검수요청.png검수요청.png 이 입출력문 문서는 프로그래밍에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.