https://1.199.kr/

c언어 scanf_s 오류 이렇게 적고 실행시켜보면 결과가 이상하게 나와요. 버전은 2022 입니다. // 실행결과 //

zc

c언어 scanf_s 오류 이렇게 적고 실행시켜보면 결과가 이상하게 나와요. 버전은 2022 입니다. // 실행결과 // 이렇게 적고 실행시켜보면 결과가 이상하게 나와요. 버전은 2022 입니다. // 실행결과 // 좋아하는 과일 : 망고 // 몇 개 : 3 // 망고를 3개 드립니다. #include int main() { char fruit[20]; int cnt; printf("좋아하는 과일 ? : "); scanf_s("%c", fruit); printf("몇 개 ? : "); scanf_s("%d", &cnt); printf("%s를 %d개 드립니다.", fruit, cnt); return 0; }

코드에 몇 가지 문제가 있습니다.

문제점 및 수정 사항

1. scanf_s("%c", fruit); → scanf_s("%s", fruit, (unsigned)_countof(fruit));

• %c는 한 글자만 입력받는 형식이므로, 문자열을 받으려면 %s를 사용해야 합니다.

• scanf_s를 사용할 때 문자열을 받을 경우, 버퍼 크기 정보를 추가로 제공해야 합니다.

2. printf("%s를 %d개 드립니다.", fruit, cnt); → printf("%s를 %d개 드립니다.\n", fruit, cnt);

• 출력 후 개행(\n)을 추가하면 다음 출력이 깔끔하게 정리됩니다.

—————————————

수정된 코드

#include <stdio.h>

int main()

{

char fruit[20]; // 문자열을 저장할 배열

int cnt; // 개수를 저장할 변수

printf("좋아하는 과일 ? : ");

scanf_s("%s", fruit, (unsigned)_countof(fruit)); // 문자열 입력 (크기 명시)

printf("몇 개 ? : ");

scanf_s("%d", &cnt); // 정수 입력

printf("%s를 %d개 드립니다.\n", fruit, cnt); // 출력

return 0;

}

——————————-

실행 결과 예시

좋아하는 과일 ? : 망고

몇 개 ? : 3

망고를 3개 드립니다.

이제 올바르게 동작할 것입니다.

 

i
logo