C언어/C - knk

printf, scanf

twoweeks-within 2024. 11. 15. 16:50

printf

문자열과 문자열에 지정된 값 을 출력하도록 설계 

>> 그래서  " " (큰 따음표)로 묶어준거였음 

char h[] = "hello";

printf(h);

printf (문자열, 표현식₁, 표현식₂, ...) ; 

 

변환지정자 % : 값을 내부 형식(이진수)에서 출력 형식(문자)으로 변환하는 방법을 지정

ex) %d : 2진수를 10진수 문자열로 바꿔라

 

일반형 : %m.pX or %-m.pX

( m,p 정수  ,X : 문자)

// p 생략시 마침표도 사라짐 

// m : 문자가 출력될 최소한의 수

출력할 값이m보다 적다면 > 오른쪽 정렬 ( 공백이 들어감)

// -m : 왼쪽정렬

 

%f

ex) %10.2f 

 

%4d, 123 > 공백123

%4d, 12345 > 12345 // m: 최소한의 수!

%-4d, 123 : 123공백

%5.3d : 최소 5개의 공간 3개의 숫자 필요 i = 40 >공백공백040

 

%e : 지수형식 표기법

e+04 : 소수점을 오른쪽으로 4자리 이동시키라는 의미 = 10

 

%g : 유효숫자(기본6개) > 불필요한 0 ,소수점 을 표기하지 않음,

  > 크기 예측불가 or 변동이 클때

     적당한 숫자일때 : 소수점표기(%f처럼)

     매우크고,변동클때 :  숫자의 크기에 따라 지수표기(%e처럼)

 

이스케이프 문자 ' / ' 

" , ' / ' 이것처럼 출력되지않는 문자를 출력하게 해줌 > \". \\ 

 

scanf

printf 와 유사, 문자or 변환지정자

한줄을 읽고 > 문자를 숫자로 변환한 뒤 > 값 할당

but unforgiving way to read data.

숫자의 시작을 찾을 때는 공백 문자를 무시하고 찾음

  %d : nondigit 이 나올때까지 읽음    

  %f, %e , %g : +-, 숫자(소수점까지), 지수를 차례로 읽음 

 

' / ' 와 같은 형식 지정자는 공백까지도 일치해야함

%d 와같은건 상관없음

ex) 5 / 95 : %d/%d 이면 5 까지만 읽고 ' / 95'(문자는 공백 상관x) 는 다음 scanf 에서 읽어옴 

ex) "%d, %d" > 5 95 이면 콤마를 찾다고 공백을 발견하고 종료함

 

 

      

'C언어 > C - knk' 카테고리의 다른 글

7.5 sizeof , 8. array  (0) 2024.11.20
4장  (0) 2024.11.16
변수, 대입, 초기화  (0) 2024.11.12
1장 . 역사,장단점,난해한 C (8퀸문제),,  (1) 2024.11.09