C언어 변환문자

from Programming/C/C++ 2008/03/26 18:20
바로 예제부터 ㄱㄱ

우리는 C언어를 처음 배울 때 이 소스부터 배우게됩니다.

위 소스는 누구나 쉽게 이해알 수 있죠. 문제는 아래소스

중간에 나오는 %d라는 놈 덕에 꽤 당황하죠.

%d는 변환문자라고 합니다. 순서에 대응하는 변수를 만지작(?) 합니다.

1.변환문자의 종류에는

%d,%i

부호 있는 10진 정수형 출력.

%u

부호 없는 10진 정수형 출력.

%o

부호 없는 8진 정수형 출력.

%x, %X

부호 없는 16진 정수형 출력, x는 소문자, X는 대문자로 출력된다.

%c

한 개의 문자 출력. 문자의 아스키 코드가 인수로 사용된다.

%f  

소숫점 표기. float형이나 double형을 출력한다.
정밀도가 나오지 않으면 소숫점 6자리까지 출력된다.

%s  

마지막 NULL을 제외한 문자열을 출력

%%

문자 '%'출력

제가 써본거라곤 d,c,f,s밖에 없네요.ㅋㅋ

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는 여기서 끝내겠습니다.

이건 헛소리....



이 글이 유익하다면 (굽신굽신) ->

Trackback Address >> http://zfanta.com/trackback/369 관련글 쓰기

  1. Favicon of http://www.ideakeyword.com BlogIcon Mr.번뜩맨 2008/03/29 00:56  address  modify / delete  reply

    헐...C언어..뭐가뭔지 한게도 모르겠네요..+_+;;

  2. Favicon of http://dlbo.tistory.com BlogIcon Lonewolf dlbo 2008/03/30 19:56  address  modify / delete  reply

    ㅋㅋ 저 gets를 이용하는 방법이 원시적인 수준의 scanf라죠. 실제로 받은 데이터들을 전부 문자열로 취급한 후 숫자인지 뭔지 분류해 내는 방법을 쓴답니다.

    •  address  modify / delete 2008/03/30 22:43 Favicon of http://zfanta.com BlogIcon  환타

      저는 역시 야만인건가요 ㅋㅋㅋ

      오스트랄로 피테쿠스
      호모 에렉투스
      호모 사피엔스
      호모 사피엔스 사피엔스
      이 절 중에 고르라면 그냥 호모?
      그냥 헛소리입니다 ㅋㅋ

  3. Favicon of http://matioworld.com BlogIcon 마티오 2008/04/01 12:04  address  modify / delete  reply

    대학 선배님이 현재 C 언어로 쩔쩔 매고 계시는데 ㅠㅠ;;
    저는 그냥 웹언어에 머물러 있을레요 엉엉;;