티스토리 뷰

ETC/종합

표준 입력, 출력 함수

BAEKNAMU 2015. 7. 1. 01:52

1.표준 출력함수

함수 : int printf(const char*format , . . .);

기능 : 입력된 인자값을 출력하는 함수.

 

표준 입출력 헤더파일을 추가해야 사용 가능.

 

 #include<stdio.h>

int main(){

int num1 = 10;

int num2 = 20;

printf("Hello~!");

prinft("world!"

 

printf("num 1 = %d \n",num1);

printf("num 2 = %d \n", num2);

 

printf("num1= %d , num2= %d \n", num1, num2);

return 0;

}

  

%d : 10진수 형태로 뒤에 인자값을 출력.

 

인자값은 콤마(,) 로 구문하고 printf() 함수안에 인자값은 첫번째만 문자열, 두번째부터는 인자값을 계속 넣을 수 있다.

인자값 수와 문자열 안에 %d 개수는 같아야 한다.

 

※출력 형태

%d : 10진수

%x : 16진수

%X : 16진수 대문자

%c : 케릭터(1byte)

%s : 인자값의 시작주소부터 null이 나올때까지 출력.

%p : 변수의 주소값 출력.

%3d :  최대 3자리로 공백으로 줄맞춰서 표현.

ex)  1

 10

100

%04d : 10진수로 앞에 0을 최대 4자리까지 붙여서 출력.

ex)    0001

 0002

%lf : 실수 출력

%18.15f : 최대 18자리, 소수점 15자리까지만 표현, 잘려나간 소수점은 반올림함.

 

 

2. 표준입력함수

함수 : char* gets(char *buffer);

기능 : 문자열을 입력받아 buffer에 넣어주고 끝에 null을 추가한다.

(\n <-- 개행문자는 버림.)

 

 #include<stdio.h>

int main(){

char string[10];

printf("input string: ");

gets(string);

printf("%s" \n", string);

 

return 0;

}

 

 

gets의 단점 : buffer overflow 발생 가능함.

 

 

함수 : char* scanf(const char *format, ...);

기능 : 입력을 받아 변수에 저장.

#include<stdio.h>

int main(){

int a = 0;

int b = 0;

printf("a = ");

scanf("%d",&a); //scanf는 변수의 주소값에 저장함. (&)

printf("a + b = %d\n", a + b);

return 0;

}

 

scanf("%[^\n]s",주소값); // \n 이 나올때까지 입력값을 저장.

 

%d : 10진수 형태로 &a에 저장한다.

 

※2개 이상 한번에 받을 때

scanf("%d%d",&a,&b); //구분이 없으면 공백이 기본 구분자.

ex) 1 2 이렇게 입력해야함.

&a에 1, &b에 2가 입력됨.

scanf("%d %d",&a,&b); // 공백이 구분자임.

scanf("%d   ",&a); //마지막에 공백이 있으면 안됨.(오류)

서식문자 뒤에는 공백을 쓰면 안됨.

scanf("%d,%d",&a,&b); //구분자가 콤마(,)

 

scanf("%d\n",&a); //많이 실수하는 부분. (오류)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'ETC > 종합' 카테고리의 다른 글

연산자연습(논리연산자)  (0) 2015.07.01
기초 연산자 연습(관계연산자)  (0) 2015.07.01
[C언어 기초] 기본 자료형  (0) 2015.06.27
윈도우7 계정 암호 알아내기  (0) 2015.06.27
구글링 팁.  (0) 2015.06.27
Comments
최근에 올라온 글
최근에 달린 댓글
TAG
more
Total
Today
Yesterday