티스토리 뷰
C에서는 출력에 대해 데이타 타입에 의존해서 출력하게 됩니다.
그러한 것을 출력변환자라고 하는데요..
요즘 새로운 언어들은 간단한 출력에 대해
그냥 문자열로 처리하는 경향이 있있는데..
이런 타입에 의존한 출력변환자 사용이 C의 장점이자 단점이기도 합니다.
그럼 출력 변환자에 대해 전체적으로 살펴보면
'%d','%i' - 정수를 부호있는 십진수로 출력
'%o' - 정수를 부호없는 8진수로 출력
'%u' - 정수를 부호없는 10진수로 출력
'%Z' - 정수가 size_t 형태로 변환된 것으로 가정하여 정수를 부호없는 10진수로 출력
'%x','%X' - 정수를 16진수로 출력
'%f' - 부동소수점수를 정상적인(고정소수점) 표기로 출력
'%e','%E' - 부동소수점수를 지수 표기로 출력 ('%e'는 소문자를 사용하고 '%E'는 대문자를 사용)
'%g','%G' - 부동소수점수를 정상적인 또는 지수 표기로 출력하며, 그 크기에 따라 적절한 것을 선택
'%c' - 단일문자 출력
'%s' - 문자열 출력
#### 정수 변환자 ####
'-' 필드내 결과를 왼편 정렬한다.
'+' 부호있는 변환자에서, 만약 그 값이 양수이면 +부호를 출력한다.
'0' 필드를 공백 대신에 0으로 채운다.
'h' 인수가 short int 나 unsinged short int에 적합하도록 지정한다.짧은 인수는 내정 인수 처리에 의해 어떻게든 int 나 unsigned int로 변환되지만, 'h' 변경자는 그것을 다시 짧은 정수로 변환한다.
'l' 인수가 long int나 unsigned long int에 적합하도록 지정한다.
'L' 인수가 long long int이도록 지정한다.
ex)
int n = 20;
printf("|%5d|%+5d|%+-5d|%05d|%5.0d|%5.2d|%d|\n",
n, n, n, n, n, n, n);
#### 부동 소수점 변환자 ####
'%f' 변환자는 그 인수를 고정소수점 표기로 출력하며,[-]ddd.ddd 형태로 출력을 생성하는데, 여기에서 소수점 뒤에 따르는 숫자의 개수는 당신이 지정한 상세지정에 의해 조절된다.
'%e' 변환자는 그 인수를 지수 표기로 출력하며, [-]d.ddde[+|-]dd 형태로 출력을 생성한다. 또한, 소수점 뒤에 따르는 숫자의 갯수는 상세지정에 의해 조절된다.지수는 최소한 두개의 숫자를 담게 된다. '%E' 변환자는 유사하지만 지수를 'e' 대신에 문자 'E'로 표기한다는 점만 다르다.
'%g''%G' 변환자는 만약 지수가 -4이하이거나 상세지정보다 같거나 크면 인수를 '%e'나 '%E'(각각) 형태로 프린트한다;그렇지 않을 경우에는 이들은 '%f' 형태로 사용한다.뒤에 붙는 영들은 결과치의 소수부분에서 제거되며,소수점 문자는 숫자가 뒤따를 때만 나타난다.
'-' 필드에서 결과를 왼편에 정렬한다.
'+' 결과치에 항상 +나 -를 포함한다.
'0' 공백대신에 0으로 필드를 채운다
'L' 대문자 'L'은 인수가 long double인 것을 지정한다.
ex) "|%12.4f|%12.4e|%12.4g|\n"
좀더 자세한것은 책을 참조하세요..
"A Book On C" 가 추천할 만한 기본 책입니다.
scanf(), printf()의 형변환 문자
Visual C++ 6.0 (x86) 환경을 기준으로
작성했습니다.
scanf( ) 함수
콘솔에서 입력 받은 문자열이나 문자, 숫자를 지정한 형식으로 읽어서 변수에 저장함
함수 원형
int scanf(const char *format, … );
사용 예
scanf(\"%d\", &a);
입력받은 자료를 정수형(%d, int형)으로 읽어서 변수 a에 저장한다.
‘&a’는 변수 a의 주소(address)를 가리킨다.
printf( ) 함수
콘솔에 문자열을 출력함
함수 원형
int printf(const char *format, … );
사용 예
int a=123;
printf(“a=%d\",a); // 출력 결과 : a=123
정수형 변수 입출력
#include
void main()
{
short a;
int b;
unsigned short c;
unsigned int d;
scanf(\"%hd\", &a);
scanf(\"%d\", &b);
scanf(\"%hu\", &c);
scanf(\"%u\", &d);
'프로그래밍 > C, C++' 카테고리의 다른 글
연자산 우선 순위 (비트 연산자 포함) (0) | 2019.06.28 |
---|---|
가변인자를 사용한 Log 함수 (0) | 2019.06.28 |
메모리의 4가지 종류 (0) | 2019.06.28 |
리눅스C 한달 전 날짜 구하기 (0) | 2019.06.28 |
리눅스 GetTickCount()활용 TimeOut 기능 (0) | 2019.06.28 |
- Total
- Today
- Yesterday