printf() 명령어는 그 다음 말을 내려적을 때 개행문자 \n을 (" ")큰 따옴표 안에 써야하는데 scanf_s("%d",&x)와 같이 스캔f 명령어를 사용하면 \n을 안써도 실행파일에서 숫자를 입력하니 자동으로 내려갔습니다! (" ") 안에 \n 썼더니 오히려 실행파일에서 제대로 입력이 작동하지 않는 것 같았습니다.
스캔f는 개행문자를 쓸 수 없는건가요?, 스캔f의 결과 값을 printf로 출력할 때 출력값은 그 줄에 안나오고 무조건 입력의 아랫줄에 나오는 것인가요?
int a; float b;
scanf_s("%d", &a);
scanf_s("%f", &b);
scanf_s() 입력함수를 사용시 정수형(실수형)을 사용할 경우 "\n"은 입력하실 필요가 없습니다.
그 이유는 정수형(실수형) 값을 1개 입력후 Enter키를 누르면 해당 Enter값이 "\n"으로 자동으로 인식되기 때문입니다. 출력문과는 다르게 "\n"을 기입해 줄 필요가 없습니다.
scanf_s()는 개행문자를 쓸 수 없는건가요?,
=> 입력문의 경우 개행문자를 사용하지 않습니다.
scanf_s()의 결과 값을 printf로 출력할 때 출력값은 그 줄에 안나오고 무조건 입력의 아랫줄에 나오는 것인가요?
=> 동일한 줄에 나오지 않고 다음줄에 나오게 되어 있습니다. (사용자가 Enter키를 누르기 때문에 자동적으로 줄바꿈 현상이 일어납니다.)
참고로 scanf_s()의 변환명세 %c와 getchar(), getc()를 제외하고는 Enter값을 입력으로 받지 않습니다.
Enter 키를 입력의 구분점으로 생각하고 받아들입니다.
scanf_s()안에 변환명세 %d, %f, %s 등을 이용하게 되면 엔터는 버퍼에 남겨두게 됩니다.
그리고 다음입력 때, %c가 아닌 다른 변환명세가 오면 버퍼에 남겨진 Enter값을 비우고 새로운 입력을 받습니다.
scanf_s()를 이용할 때, %c만 Enter를 입력으로 받아들입니다.