inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

C 프로그래밍 - 입문부터 게임 개발까지

scanf

scanf

92

손진주

작성한 질문수 14

0

{75DE7EA2-3D0A-4E93-8CB2-1E512C130035}.png

두번째 부분이 계속 저렇게 표시되어 있고
출력해서 문자열을 입력하시오라고 적으면
문자열 까지만 출력글이 나옵니다

c

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 손진주님.

C 프로그래밍에서 scanf 사용 시 주의사항이 몇 가지 있는데요, 질문에서 지적하신 몇 가지 포인트에 대해 설명드리겠습니다.

  1. scanf_s 사용 여부: 일반적으로 scanf는 문자열을 입력받을 때 사용할 수 있지만, 글에서 설명하신 scanf_s는 보다 안전한 입력을 위해 사용되는 함수입니다. 사용 시, 입력받을 버퍼 크기를 명시해줘야 합니다. 하지만 이 기능은 MSVC 컴파일러에서만 지원되므로, 컴파일러에 따라 적합성을 확인해야 합니다.

  2. sizeof의 사용: scanf_s를 사용하는 경우, 마지막 인자로 입력 버퍼의 크기를 지정해야 합니다. 예를 들어, scanf_s("%s", str, sizeof(str)); 같이 버퍼 크기를 올바르게 지정해야 합니다. 하지만 기본 scanf에서는 이 인자 없이 사용해야 합니다.

  3. 버퍼 오버플로 방지: 문자열 입력 시 scanf는 공백이나 버퍼 크기 초과 등으로 인한 버퍼 오버플로우 취약성이 있으므로, 이러한 문제를 피하기 위해 fgets와 같은 함수를 사용하는 것이 좋습니다.

관련 문제에 대한 해결 방법을 더 잘 이해하시기 위해, scanf_s에서의 sizeof를 참고하시면 도움이 될 것 같습니다.

질문에서 제공된 이미지의 코드가 scanf_s를 사용하는 방식이라면, 위 설명대로 사용해야 올바르게 작동할 것입니다. 또한, 컴파일러에 따라서는 scanf_s의 사용이 제한될 수 있어 조심해야 합니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

안녕하세요 7장 포인터에 관해 질문드립니다.

0

63

1

8-8 연장전 / 소스코드 공유해드려요. 참고하세요!

0

64

0

섹션6. 프로젝트 소스코드 올려드려요.

0

93

1

영상속에서 배운 코드들을 Git Repository에 올려두될까요?

0

79

1

경찰서 조서 프로젝트 문의

0

104

1

경찰관 조서 프로젝트

0

142

1

제대로 작성한것 같은데 빌드가 않됩니다.,

0

170

1

구문 오류 C2059

0

397

1

컴파일 시 fatal error C1010 발생

0

284

1

반환값이 없는 함수

0

215

1

반올림 되는건가요?

0

252

1

맥으로수강

0

193

1

10-2

0

257

1

질문이 있습니다

0

341

1

3-3 for 반복문 ++i 일때 질문입니다.

0

244

1

6-4(배열 파트 '문자 vs 문자열') sizeof 예제 다르게 출력되는 분들 참고하세요.

1

411

0

함수 선언과 정의를 동시에 해도 되나요?

0

1076

1

빌드오류가 있다고 나오고, 지정된 파일을 찾을 수 없다고 오류가 나옵니다..

0

403

1

안녕하세요 좋은 강의와 책 감사드립니다!! 다름이 아니라 명령어를 실행시켰을 때 저런식으로 나와서 질문드립니다

0

933

0

질문있습니다!

0

375

1

질문드립니다

0

384

1

scanf_s(" %d", &answer); 이후 바로 종료

0

308

0

질문 드립니다.

0

428

1

sizeof에서 오류가 나는 것 같아서 물어보고 싶습니다.

0

562

0