printf에서 %s가 이해 안가는 점이 있어 질문드려요.
p40 [문제1] 에서
⑬printf("%-8.6s", "help me"); 에서는 -(마이너스)가 '왼쪽부터 출력' 함을 의미한다고 (④에서도 마찬가지로) 나오는데
⑩printf("%.3s", "help me"): 에서는 -(마이너스)가 없는데 왜 왼쪽 기준으로 출력한다고 설명(책,강의 둘다)되어있는지 이해가 안가요ㅠ.
'-'가 없는데 왜 오른쪽 아닌 왼쪽부터 출력되나요? 전체자리수가 지정되지 않은것과 연관되는건지 궁금해요~
그리고 p38 ⑥,⑦ 과 p40 ⑩~⑭보면서 scanf()함수와 printf()함수에서 %s의 쓰일 때 의미가 다른게 많이 헷갈리는데ㅠ 어떻게 다른가요? 설명부탁드려요 감사합니다.
안녕하세요 길벗수험서 운영팀입니다.
먼저 %s 에서 칸수가 확보(ex: &8.3에서 8)되지 않는다면 자연스레 왼쪽부터 출력됩니다.
정렬의 의미가 없죠.
칸수가 확보되었다면 이때에서나 +우측정렬, -좌측정렬에 의미가 있는 것입니다.
소수점은 문자열에서 글자를 가져오는데 이건 어떤 경우에서나 왼쪽에서부터 소수점의 숫자만큼 글자를 가져오게됩니다.
scanf에서는 문자열에서 제한적으로 글자를 가져올 때 정수를 사용합니다. printf에서 소수점을 사용한 것과 달리요. scanf에서는 소수점을 활용 자체를 하지 않습니다.
+, - 또한 의미가 없습니다. 데이터 입력에서 정렬은 취급되지 않기 때문이죠.
scanf에서는 그저 자료형 앞에 붙은 정수가 각 자료형마다 무슨 역할을 하는지만 정확히 학습해두시면 됩니다.
행복한 하루되세요 :)
-
관리자2020-07-21 11:37:53
안녕하세요 길벗수험서 운영팀입니다.
먼저 %s 에서 칸수가 확보(ex: &8.3에서 8)되지 않는다면 자연스레 왼쪽부터 출력됩니다.
정렬의 의미가 없죠.
칸수가 확보되었다면 이때에서나 +우측정렬, -좌측정렬에 의미가 있는 것입니다.
소수점은 문자열에서 글자를 가져오는데 이건 어떤 경우에서나 왼쪽에서부터 소수점의 숫자만큼 글자를 가져오게됩니다.
scanf에서는 문자열에서 제한적으로 글자를 가져올 때 정수를 사용합니다. printf에서 소수점을 사용한 것과 달리요. scanf에서는 소수점을 활용 자체를 하지 않습니다.
+, - 또한 의미가 없습니다. 데이터 입력에서 정렬은 취급되지 않기 때문이죠.
scanf에서는 그저 자료형 앞에 붙은 정수가 각 자료형마다 무슨 역할을 하는지만 정확히 학습해두시면 됩니다.
행복한 하루되세요 :)