-
[C Language] 5. 입출력 함수(I/O Function) - C 언어CSE/C Language 2015. 6. 13. 10:041. 입출력 함수의 개요- 키보드로 입력을 받거나 화면에 출력을 해주는 함수를 통틀어 입출력 함수라 한다.(파일에 읽기 쓰기도 입출력)2. printf()- 표준 출력 함수 중에서 가장 많이 사용되는 함수이다.- 문자, 숫자, 문자열, 부동 소수 등 다양한 형태로 출력 가능하다.'printf()의 형식'
printf("서식 문자열", 인자1, 인자2, ...);
printf()는 크게 서식 문자열과 인자의 조합으로 사용 가능하며, 서식 문자열은 항상 큰따옴표로 감싸주어야 한다.'변환 형식 문자가 없는 경우'1. printf("I'm a rich");2. printf("I'm a boy.\n Yor are a girl");'변환 형식 문자가 있는 경우'1. printf("Age: %d\n", age);컴파일러는 '%' 기호를 만나는 순간 변환 형식 문자로 간주하여, 바로 다음에 이어지는 문자에 따라서 다양한 형식을 출력한다.컴파일러가 인식하는 변환 형식 문자는 아래와 같다.변환 형식 문자
변환 형식 내용
출력하려는 데이터 형
%d
인자의 값을 10 진수로 출력
printf("%d", 100); // 100 출력
int
%c
인자의 값을 참조하여 문자 하나를 출력
printf("%c", u); // u 출력
printf("%c", imsi); // ASCII 문자 출력
char
%s
NULL 문자를 만날 때까지 인자의 값을 출력
printf("%s", "Rich");
printf("%s", imsi); // imsi 가 가리키는
// 문자열 출력
문자열 포인터 변수,
문자열 상수
%x, %X
인자의 값을 16진수로 출력
printf("%x", 100); // 64
int
%f
인자의 값을 부동소수로 출력
printf("%f", 100); // 100.000000
printf("%f", 0.5); // 0.500000
float, double
이 밖에도 %u, %g, %e 등 다양하게 존재하지만 위 문자만 확실히 알아도 작성시 큰 문제가 없다.'서식 지정 문자'- 변환 형식 문자는 인자의 값을 데이터 형에 따라 출력만 해줄 뿐 출력의 '모양'을 결정하지는 않는다.%[flag][width][.prec][F|N|h|l]type
- flag: '-', '+', ' ', '#' 등이 있으며, 숫자에 음수기호나 주소를 표시하는 역할을 한다.- width: 출력의 폭을 지정한다.- prec: 출력되는 값의 정밀도를 지정한다. 부동 소수에서 주로 사용- F, N, h, l: 입력 크기 지정자라고 한다.- type: 변환 형식 문자를 지정한다.아래 예제를 통해 간단히 살펴보자.12345678910111213141516171819202122/** format.c** Created on: 2015. 5. 11.* Author: root*/#include <stdio.h>int main(void) {char * name[] = {"Jung", "Park", "Kim"};int grade[3] = {24, 17, 31};printf("%s %s %s\n", name[0], name[1], name[2]);printf("%d %d %d\n", grade[0], grade[1], grade[2]);puts("");printf("%7s %7s %7s\n", name[0], name[1], name[2]);printf("%7d %7d %7d\n", grade[0], grade[1], grade[2]);return 0;}cs 결과는 아래와 같다.3. scanf()- 표준 출력과 대응되는 함수로 표준 입력 기능을 맡는다.- 문자열 입력받을 때는 자제해야 한다.아래의 나이를 입력받아서 살아온 날 수를 출력하는 예제를 통해 보도록 하자.1234567891011121314151617181920/** scanf.c** Created on: 2015. 5. 11.* Author: root*/#include <stdio.h>int main(void) {int age;printf("How old are you?? ");scanf("%d", &age);printf("%d", age * 365);return 0;}cs scanf()에서 주의할 점은 printf()와 비슷하나, 항상 인자의 앞에 & 기호를 잊지 말아야 한다.또한 scanf()의 문자 입력시 주의할 점도 있다.아래 예제를 통해 보도록 하자.1234567891011121314151617181920212223/** scanf2.c** Created on: 2015. 5. 11.* Author: root*/#include <stdio.h>int main(void) {char one, two;printf("Input two characters: ");scanf("%c%c", &one, &two);printf("%c %c\n", one, two);printf("Input two characters: ");scanf("%c %c", &one, &two);printf("%c %c\n", one, two);return 0;}cs 두 예제는 얼추 보면 비슷해 보이나, scanf() 부분에서위에선 %c%c 로 붙였고,아래에선 %c %c로 한칸 여백을 두었다.실행결과를 통해 비교해보자.* Programming in C 서적을 참고하여 작성하였습니다
'CSE > C Language' 카테고리의 다른 글
[C Language] 8. 사칙 연산자와 나머지 연산자 - C 언어 (0) 2015.06.13 [C Language] 7. 대입 연산자(Assign operator) - C 언어 (0) 2015.06.13 [C Language] 6. 연산자 개요(Introduction to operator) - C 언어 (0) 2015.06.13 [C Language] 4. 내장 매크로(Nested Macro) - C 언어 (0) 2015.06.13 [C Language] 3. 매크로 함수(Macro function) - C 언어 (0) 2015.06.13 [C Language] 2. 매크로 변수(Macro Variable) - C 언어 (0) 2015.06.13