개발관련

Printf & Scanf

blesscdh 2008. 5. 9. 16:17
printf()

표준 입출력 함수- 표준 입출력 장치를 통해 데이터를 입력하거나 출력하는 기능을 갖고 있는 함수
표준 입출력 함수를 사용하려면 #include 를 기술해 줘야 한다.


형식
printf(" 출력양식 ", 인수1,인수2...);
서식문자열에는 모든 문자를 사용할 수 있으며 변환문자와 제어문자를 제외하고는 화면에 그대로 출력
인수와 변환문자는 일대일 대응해야 하며 반드시 인수의 자료형과 문자의 자료형은 일치해야 한다.
ex) printf("%d + %d= %d\n",10,20,30);
출력결과 10+20=30

변환문자
변환문자 의미 자료형
%d 10진수로 출력 정수형
%o 8진수로 출력
%x 16진수로 출력
%ld long형 10진수로 출력
%lo long형 8진수로 출력
%lx long형 16진수로 출력
%u 부호없는 10진수로 출력
%c 하나의 문자로 출력 문자형

제어문자
제어문자 출 력 형 식
\b 커서를 한칸 앞으로 이동 함
\f 한페이지 이동 함
\n 다음줄의 처음으로 줄바꿈 함
\r 커서를 그 줄의 맨 앞으로 이동시킴
\t 탭문자 간격만큼 커서를 이동시킴
\v 커서를 수직으로 칸을 띄우기 함
\a Bell 소리가 나게 함

예제 1)
/* printf()함수를 이용해서 데이터 출력하기 */

#include
main(){
int x=345;
float y=34.564;
printf("%10d\n",x); /*x를 10자리에 맞추어 출력한다. */
printf("%-10d\n",x); /*x를 10자리에 맞추어 출력하고 출력방향을 왼쪽에 맞춘다. */
printf("%010d\n",x); /*x를 10자리에 맞추어 출력하고 남는 공백을 0으로 채운다. */
printf("%.2f\n",y); /*y를 소수점 이하 2자리로 출력한다. */
printf("%-10.3f\n",y) ; /*y를 소수점 이하 3자리,전체자릿수는 10자리 출력방향은 왼쪽으로 출력한다. */
}
------------------------------------------------------------------------------------------





scanf()

형식
scanf("변환문자", 인수1,인수2...);
- 일반 변수를 인수로 사용할 때는 인수 앞에 주소 연산자인 & 기호를 사용해야 한다.
- 여러개의 데이터를 입력할 때 데이터의 구분은 공백과 엔터키로 구분한다.
- 변환문자는 입력자료의 형(Type) 을 지정
- 인수의 주소는 입력자료가 기억될 변수의 주소를 나타내며, 변환문자의 갯수와 같아야 함.
ex) scanf("%d %d",&num1,&num2); /*정수값 두개를 입력받아 num1과 num2에 저장한다. */
char name[15],c;
scanf("%s %c",name,&c);
=> scanf() 함수에서 단일 문자 변수 앞에는 &연산자를 붙여야 하지만 문자배열에서는 &기호를 생략한다. 배열의 이름자체가 주소값을 나타내므로 생략가능한 것이다. 문자배열의 맨 마지막에는 null문자가 자동적으로 입력된다.

예제 2 )
/* scanf()를 사용하여 두 정수값을 입력받아 덧셈 연산하기 */
#include
void main(){
int a,b,sum;
printf("input two numbers :");
scanf("%d %d",&a,&b); /* 정수 두개를 입력받아 변수 a와 b에 저장한다. */
sum=a+b;
printf("sum of two numbers : %d\n",sum);
}
예제2 실행결과보기
예제 3)
#include
main()
{
int x;
float y;
char ch1, ch2[30];
printf("10진정수, 실수, 단일문자, 문자열을 입력하시오 ! \n");
scanf("%d %f %c %s",&x, &y, &ch1, ch2);
printf("10진정수 :%d, 실수 :%f, 단일문자 :%c, 문자열 :%s\n",x, y, ch1, ch2);
}