C/C

scanf() 표준 입력 함수

HicKee 2022. 10. 4. 13:35

표준 입력(콘솔에 입력) 으로 사용자의 입력을 받아 입력 값을 변수에 저장

헤더파일 stdio.h

정수를 입력

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h> 

int main(){

int num;
printf("정수를 입력");
scanf("%d",&num);
printf("%d\n",num);

}

scanf( ) 첫번째 인수에 " " 안에 서식지정자를 넣어서 입력받는 값 형태를 지정
두번째 인수에 입력 값을 저장할 변수를 넣음
주의 점은 변수 앞에 &을 붙여 주어야함 (주소 값)

scanf("%d",&num); //입력 받아서 변수에 저장

정수 두개 입력 

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h> 

int main(){

int num1,num2;
printf("정수를 두개 입력");
scanf("%d %d",&num1,&num2);
printf("%d %d\n",num1,num2);

}

scanf()는 printf()와 사용방법이 비슷하다. 입력 받을 개수 만큼 서식 지정자를 지정하고
서식 지정자 만큼 변수를 넣어 주면 된다. &는 반드시 필요

실수의 입력

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h> 

int main(){

double num;
printf("실수를 입력");
scanf("%lf",num);
printf("%lf",num);

}

실수 입력받을 것이므로 double로 변수를 선언 scanf() 서식지정자를 %lf 설정

입력받을 자료형에 맞춰 변수를 선언 서식지정자도 선언 
float > %f , long double >%Lf

문자의 입력

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
    char c;

    printf("문자 입력 ");
    scanf("%c", &c); 
    printf("%c\n", c);   

}

scanf( ) 에서 %c는 문자 한개만 입력 여러개의 문자를 입력 받더라도 한개만 저장됨
>>첫번쨰 문자만 입력됨 

 

getchar( ) 로 문자를 입력 받을수도 있다 (하나만 입력 , 여러개를 입력받아도 첫번째만 반환)
putchar( ) 는 문자 하나를 화면에 출력 둘다 stdio.h 헤더 파일

 

getchar( )

더보기
#include <stdio.h>

int main()
{
    char c = getchar();    // 문자 하나 입력

    printf("%c\n", c);

}

putchar( )

더보기
#include <stdio.h>

int main()
{
    char c = 'A';

    putchar(c);

}

 

scanf( ) 오류

scanf는 입력 값의 길이를 설정할 수가 없다.


 #define _CRT_SECURE_NO_WARNINGS 필요함 >> C4996 컴파일 에러 발생

 

2022.09.26 - [공부/C 함수] - C scanf( ) C4996 오류 이유, 해결

 

C scanf( ) C4996 오류 이유, 해결

scanf 보안 경고 C4996 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details...

hickee.tistory.com

 

'C > C' 카테고리의 다른 글

gets() - 문자열 입력  (0) 2022.10.05
sizeof 연산자 O 함수 X  (0) 2022.10.04
배열 1 - 배열의 선언과 접근 , 초기화  (0) 2022.10.04
포인터 pointer 4 - 이중 포인터, 주의할 점  (0) 2022.10.04
strlen(); 문자열의 길이  (0) 2022.10.03