저리 코드를 짜봤는데
입력단위 문자열하고 문자단위 출력에서 씹힙니다
도움!
코드
#include <stdio.h>
int main(void)
{
char str[50];
int idx = 0;
printf("문자열을 입력해 주십시오 : ");
scanf_s("%s", str);
printf("입력받은 문자열 : %s \n", str);
printf("문자단위 출력 : \n");
while (str[idx] != '\0')
{
printf("%c", str[idx]);
idx++;
}
printf("\n");
return 0;
}
scanf_s("%s", str, 50);로 바꿔 보도록.
ㄴ ㄳㄳ 근데 책에서는 그냥 scanf_s(%s, str);로 써져있는데 왜 뒤에 ,50을 붙여야함? 책은 윤성우의 열혈 c프로그래밍
쓰는 게 맞는데? 그 분도 땔깜인 가 보지. 제대로 확인도 안하고 책 낸 듯.
, 50을 안 써도 되는 건 scanf_s가 아니라 그냥 scanf를 쓸 때의 이야기임.
scanf_s는 %s를 쓸 때는 반드시 그 다음 인자로 버퍼의 크기를 제공해 줘야 됨.
아 이게 그냥 scanf라 써져있네 , 50은 배열되는 메모리 말하는거 맞지예?
ㅇㅇ 땡큐땡큐!
ㅇㅇ. scanf_s는 최신 버전의 Visual Studio에서나 지원되는 거고. 그거 쓰기 싫으면 프로젝트 만들 때 SDL 검사 체크 풀어라.