본문 바로가기
C언어

C언어 기초 -scanf_s(데이터 입력, 연속 입력, 문자열 입력)와 데이터 크기

by 유노brain 2023. 3. 3.
반응형
Visual Studio에서는 scanf가 보안상의 이유로 사용이 안된다.
그 대신 scanf_s를 사용하면 예전 scanf처럼 입력이 가능하다.

 

1. 데이터 입력

-> 정수 입력 %d의 경우 입력변수에 & 붙이기

	#include<stdio.h>

	int main(void) {
		int a=0;	//먼저 정수형 a를 초기화해준다.
		scanf_s("%d", &a);	//여기서 변수 a에 값을 입력한다.
		printf("입력한 값 : %d\n", a);	//입력한 값 출력
		//주의 scanf_s에는 \n을 쓸수 없다.
	
		return 0;
	}

2. 연속 입력하는 법

	#include<stdio.h>

	int main(void) {
		int age;
		float height;

		printf("나이와 키를 입력하세요 : \n");
		scanf_s("%d%f", &age, &height);	//나이와 키를 입력 값을 받을 때는 &를 사용한다.
		//연속입력은 입력할 때 space, tab, newline등으로 구분한다.
		printf("나이는 %d살이고 키는 %.1fcm이다.", age, height);
	
		return 0;
	}​

3. 문자, 문자열 입력

문자와 문자열의 경우 인자가 3개가 필요하다.(세번째 인수 sizeof가 필요하다)
sizeof는 자료형의 크기를 구할 수 있다.
	#include<stdio.h>

	int main(void) {
		char grade;	//학점을 입력할 변수
		char name[20];	//이름을 입력할 배열

		//문자와 문자열의 경우는 scanf_s()의 인수는 3개이다. 정수나 실수는 2개면 된다.
		printf("학점 입력 : \n");
		scanf_s("%c", &grade, sizeof(grade));	//%c의 경우 &를 사용해야 한다.
		printf("이름 입력 : \n");
		scanf_s("%s", name, sizeof(name));	//%s의 경우 &를 사용하지 않아도된다.
		printf("%s의 학점은 %c입니다.\n", name, grade);
	
		return 0;
	}
반응형

댓글