본문 바로가기

c

scanf 특징

1. 입력

 main(void){
scanf("%s",name);
printf("%s",name);

return 0;

}

 janggom tistory 로 입력
=> janggom 만 출력

 scanf는

 입력을 읽기 시작한 후 첫번째 공백문자(빈칸, 탭, 개행문자)를 만나는 곳까지 읽어들인다.


따라서 일반적으로 한개의 단어만 읽을 때 사용 


 

2. scanf()의 변경자

 

*      - 입력을 건너뛰게 한다.  "%*d"

숫자  - 최대 필드 너비, 최대 필드 너비에 도달하거나 첫번째 공백문자를 만나는 경우에 입력이 중지된다.  "%10s"

int형 입력

%d - 10진수 정수형입력받음 

%i  -  0이 앞에 붙으면 8진수로 0x로 붙으면 16진수로 가정하여 입력

%o - 정수자료형에 8진수 형태 입력값 저장  

%x - 정수 자료형에 16진수 형태 입력값 저장

short형 입력

%hd %hi - short int 값 입력 받음

%ho %hx %hu - unsigned short int값 입력 받음 

float형 입력

%e %E - 지수형 형태값을 입력받음 

%f - 소수형태 입력값 입력

%g - %e,%f중 가장 간단한 값 입력받음

double형 입력

%le %lf %lg - float형 설명과 동일

%Le %Lf %Lg - long double형 입력

long형 입력

%ld %li - long값 입력 받음

%lo %lx %lu - unsigned long값 입력 받음

 ( printf()는 %f가 float, double에 모두 대응되는데 비해 scanf()는 float와만 대응된다. 따로 %lf를 써야함)


3. scanf()의 리터값

- 성공적으로 읽어들인 항목수 

 읽어들인 항목이 없다면 0을 리턴, 파일의 끝이라면 EOF(end of file)을 리턴

ex) while(scanf("%ld",&num)==1){

.......

}



4. * 변경자 printf()와 scanf()의 차이점

printf() 필드너비 대신 사용 "%*d" -> 전달인수 2개
scanf() 건너뛰기 특정열 입력 "%*d %*d %d" -> 전달인수 1개

'c' 카테고리의 다른 글

루프  (0) 2012.11.06
콤마 연산자  (0) 2012.11.05
형 변환  (0) 2012.11.04
기본 데이터형  (0) 2012.11.02
실수 자료형 반올림 오차  (0) 2012.11.01