[쉽게 풀어쓴 C언어] CH04 - 변수와 자료형 :: Programming #8

z00m__in·2022년 2월 22일
0

문제

사용자가 아스키 코드값을 입력하면 그 아스키 코드값에 해당하는 문자를 출력하는 프로그램을 작성하라.
HINT : 문자를 출력하려면 형식 지정자 %c를 사용한다. 정수를 받아서(char)로 형변환하여 %c로 출력한다.

코드1

#include <stdio.h>

void main() {
	char ascii;

	printf("아스키 코드값을 입력하시오 :");
	scanf("%d", &ascii);
	printf("문자: %c입니다.\n\n", ascii);
}

Run-Time Check Failure #2 - Stack around the variable 'ascii' was corrupted.

실행 결과 위 런타임에러가 떠버렸다. 검색결과 뭔가 하니, 내가 char형으로 선언한 ascii 변수에 실제로 선언된 크기보다 큰 크기인 int형의 값을 넣으려고 해서 생긴 에러라고 한다.

그래서 수정한 결과,

코드2

#include <stdio.h>

void main() {
	int num;
	char ascii;

	printf("아스키 코드값을 입력하시오 :");
	scanf("%d", &num);
	ascii = (char)num;
	printf("문자: %c입니다.\n\n", ascii);
}


잘 돌아간다. num 변수 써서 정수형 따로 받고, acii는 (char)로 형변환하는 것.

profile
우당탕탕 기록지

0개의 댓글