6장. printf와 scanf 함수에 대한 고찰
printf 함수 이야기 printf는 문자열을 출력하는 함수이다. 예제 printf1.c 참조 특수 문자 의 미 \a 경고음 소리 발생 \b 백스페이스(backspace) \f 폼 피드(form feed) \n 개행 \r 캐리지 리턴(carriage return) \t 수평 탭 \v 수직 탭 \\ 백슬래시(\) \’ 작은 따옴표 \” 큰 따옴표
printf 함수 이야기 특수 문자가 필요한 이유 잘못된 문자열 출력 그림 6-1 #include <stdio.h> int main(void) { printf("앞집 강아지가 말했다. "멍! 멍!" 정말 귀엽다."); return 0; } 그림 6-1
printf 함수 이야기 printf 함수는 서식 지정이 가능하다. printf의 f는 "formatted"를 의미한다. 서식 지정 : 출력의 형태를 지정한다는 의미 (ex : 문자열 안에 숫자 삽입) 서식 지정의 예 #include <stdio.h> int main(void) { int age=12; printf("10진수로 %d살이고 16진수로 %x살 입니다.", age, age); return 0; }
printf 함수 이야기 서식 문자의 종류와 그 의미 서식 문자 출력 형태 %c 단일 문자 %d 부호 있는 10진 정수 %i 부호 있는 10진 실수 %s 문자열 %o 부호 없는 8진 정수 %u 부호 없는 10진 정수 %x 부호 없는 16진 정수, 소문자 사용 %X 부호 없는 16진 정수, 대문자 사용 %e e 표기법에 의한 실수 %E E 표기법에 의한 실수 %g 값에 따라서 %f, %e 둘 중 하나를 선택 %G 값에 따라서 %f, %G 둘 중 하나를 선택 %% % 기호 출력
printf 함수 이야기 %c, %d, %f, %s %o, %u, %x, %X %e, %E 가장 많이 쓰이는 서식 문자들 부호 없는 정수형 출력 %e, %E '부동소수점 표현 방식'에 의한 출력 3.1245e+2 3.1245×10+2 2.45e-4 2.45×10-4
printf 함수 이야기 %g, %G 표현하고자 하는 실수의 값이 소수점 이하 6자리인 경우 %f의 형태로 출력 이 범위를 넘길 경우 %e의 형태로 출력 #include <stdio.h> int main(void) { printf("%g \n", 0.00123); // 0.00123 출력 printf("%G \n", 0.000123); // 0.000123 출력 printf("%g \n", 0.0000123); // 1.23e-005 출력 printf("%G \n", 0.00000123); // 1.23E-006 출력 return 0; }
printf 함수 이야기 필드 폭을 지정하여 멋진 출력을! 서식 문자를 이용해서 출력의 폭 지정 가능 예제 field_wid.c 참조 서식 문자 출력의 형태 %8d 필드 폭을 8칸 확보하고 오른쪽 정렬해서 출력하라. %-8d 필드 폭을 8칸 확보하고 왼쪽 정렬해서 출력하라. %+8d 필드 폭을 8칸 확보하고 오른쪽 정렬한 상태에서 양수는 +, 음수는 –를 붙여서 출력하라.
scanf 함수 이야기 scanf 함수의 입력 형태 정의 실수 입력에 있어서 주의사항 데이터를 입력받는 형태를 지정할 수 있다. 즉 입력 서식을 지정하는 것이다. 예 : "%d %o %x” 실수 입력에 있어서 주의사항 정밀도 생각! 소수 6자리 이하의 실수 입력 시 %f 사용 소수 6자리를 넘는 실수 입력 시 %e 사용 단! double형 변수를 사용하는 경우에는 서식 문자 %le를 사용 예제 scanf_conv2.c 참조
#include <stdio. h> // stdio #include <stdio.h> // stdio.h 헤더 파일 포함 Void main(void) // main 함수의 시작 { int result; int val1, val2; printf("숫 자 두개 입력 : "); scanf("%d %d", &val1, &val2); result = val1 + val2; printf("%d + %d = %d\n", val1, val2, result); }