우리는 C언어를 처음 배울 때 이 소스부터 배우게됩니다.
위 소스는 누구나 쉽게 이해알 수 있죠. 문제는 아래소스
중간에 나오는 %d라는 놈 덕에 꽤 당황하죠.
%d는 변환문자라고 합니다. 순서에 대응하는 변수를 만지작(?) 합니다.
1.변환문자의 종류에는
|
%d,%i |
부호 있는 10진 정수형 출력. |
|
%u |
부호 없는 10진 정수형 출력. |
|
%o |
부호 없는 8진 정수형 출력. |
|
%x, %X |
부호 없는 16진 정수형 출력, x는 소문자, X는 대문자로 출력된다. |
|
%c |
한 개의 문자 출력. 문자의 아스키 코드가 인수로 사용된다. |
|
%f |
소숫점 표기. float형이나 double형을 출력한다. |
|
%s |
마지막 NULL을 제외한 문자열을 출력 |
|
%% |
문자 '%'출력 |
2.printf에서
printf에서 변환문자로 재밌게 놀 수 있습니다.
달라진 건 printf의 %d사이에 숫자 4가 있다는 거. ("필드 폭 지정자"라고 합니다.)
이건 폭을 지정합니다. (기본은 오른쪽정렬)
가운데의 숫자 바꿔가면서 하면 금방 아실거에요.
왼쪽으로 정렬하고 싶다면.
달라진 건 %4d가 %-4d로 바뀐 거 밖에 없어요. (이 "-"는 "플래그"라고 합니다.)
플래그의 종류에는
| - |
출력되는 내용을 왼쪽으로 정렬 |
| + | 수를 출력할 때 항상 +나 -를 앞에 출력 |
| (공백) | 수를 출력할 때 앞을 빈칸으로 |
| # | %o, %x, %X에서만 쓰임, 8진수는 0, 16진수는 0x를 앞에 출력 |
2. scanf에서
scanf에서도 재밌게 놀 수 있어요.
작년에 이걸 알았다면 대회에서 GG는 없었을 텐데요. ㅜㅜ
2개 이상의 수 입력받기.
대부분 이헐게 합니다. 공백을 기준으로 숫자를 입력받죠.
,(쉼표)로 숫자를 구분하고 싶을 때는 간단하게
scanf("%d%d",&a,&b);를 scanf("%d,%d",&a,&b);로 바꿔주면 끝.
%d와 %d사이에 ,를 넣었습니다.
scanf는 여기서 끝내겠습니다.
이건 헛소리....
헐...C언어..뭐가뭔지 한게도 모르겠네요..+_+;;
C언어 별 거 없습니다 ㅋㅋ
별거 없는 거 때문에 죽을지경이지만요 ㅋㅋㅋ
ㅋㅋ 저 gets를 이용하는 방법이 원시적인 수준의 scanf라죠. 실제로 받은 데이터들을 전부 문자열로 취급한 후 숫자인지 뭔지 분류해 내는 방법을 쓴답니다.
저는 역시 야만인건가요 ㅋㅋㅋ
오스트랄로 피테쿠스
호모 에렉투스
호모 사피엔스
호모 사피엔스 사피엔스
이 절 중에 고르라면 그냥 호모?
그냥 헛소리입니다 ㅋㅋ
대학 선배님이 현재 C 언어로 쩔쩔 매고 계시는데 ㅠㅠ;;
저는 그냥 웹언어에 머물러 있을레요 엉엉;;
C언어는 공공의 적이지요 ㅜㅜ