(포스팅 2022.10.14)
scanf_s()에서 char형 (%c)를 받을 때 에러가 나는 경우를 포스팅합니다.
VisualStudio에서 C언어 사용시, scanf() 보다는 scanf_s()를 추천하고 있습니다.
아래는 VisualStudio에서 scanf() 사용시 발생하는 빌드에러입니다.
scanf() 대신 scanf_s() 를 사용하면 됩니다.
이 때, scanf_s() 로 문자열을 받을 시 주의점이 있습니다. 문자열 저장장소의 길이를 알려주어야 합니다.
문자열(char[]) 뿐 아니라 1byte문자(char)도 동일합니다.
scanf_s("%d", &i);
scanf_s("%c", &c, (int)sizeof(c)); // char의 경우에도 변수 길이를 넣어주어야 함.
scanf_s("%s", str, (int)sizeof(str)); // 문자열의 경우 변수 길이를 넣어주어야 함.
scanf_s()에서 char입력을 받을때, 변수길이를 입력하지 않으면 경고가 발생합니다. 이 경고를 무시하고 빌드하여 실행할 시, 프로그램이 강제 종료되는 등 오류가 발행하니 유의 바랍니다.
포스팅은 여기까지입니다.
언제나 감사드립니다.
프로그래머스쿨 C언어 레벨1 : 달리기 경주 (1) | 2023.08.22 |
---|---|
C언어) 함수의 인자와 리턴값으로 구조체 사용하기 (0) | 2022.10.14 |
(C언어) 왜 전역변수만 자동으로 초기화되는가 (0) | 2022.10.12 |
(C언어) 문자열 배열에 문자열 대입 불가 (0) | 2022.10.12 |
(C언어) scanf와 fgets 함수를 같이 사용하면 입력 오류 발생 (0) | 2022.10.11 |
댓글 영역