책 내용 질문하기
데이터 입출력에서 %s 질문 드립니다.
도서
2020 시나공 정보처리기사 실기 [기본서]
페이지
38,40
조회수
221
작성일
2020-07-20
작성자
탈퇴*원
첨부파일

printf에서 %s가 이해 안가는 점이 있어 질문드려요. 

p40 [문제1] 에서 

⑬printf("%-8.6s", "help me"); 에서는 -(마이너스)가 '왼쪽부터 출력' 함을 의미한다고 (④에서도 마찬가지로) 나오는데

⑩printf("%.3s", "help me"): 에서는 -(마이너스)가 없는데 왜 왼쪽 기준으로 출력한다고 설명(책,강의 둘다)되어있는지 이해가 안가요ㅠ.

'-'가 없는데 왜  오른쪽 아닌 왼쪽부터 출력되나요? 전체자리수가 지정되지 않은것과 연관되는건지 궁금해요~

 

그리고 p38 ⑥,⑦ 과 p40 ⑩~⑭보면서 scanf()함수와 printf()함수에서 %s의 쓰일 때 의미가 다른게 많이 헷갈리는데ㅠ 어떻게 다른가요? 설명부탁드려요 감사합니다.

답변
2020-07-21 11:37:53

안녕하세요 길벗수험서 운영팀입니다.

 

먼저 %s 에서 칸수가 확보(ex: &8.3에서 8)되지 않는다면 자연스레 왼쪽부터 출력됩니다.

정렬의 의미가 없죠.

 

칸수가 확보되었다면 이때에서나 +우측정렬, -좌측정렬에 의미가 있는 것입니다.

 

소수점은 문자열에서 글자를 가져오는데 이건 어떤 경우에서나 왼쪽에서부터 소수점의 숫자만큼 글자를 가져오게됩니다.

 

scanf에서는 문자열에서 제한적으로 글자를 가져올 때 정수를 사용합니다. printf에서 소수점을 사용한 것과 달리요. scanf에서는 소수점을 활용 자체를 하지 않습니다.

+, - 또한 의미가 없습니다. 데이터 입력에서 정렬은 취급되지 않기 때문이죠.

scanf에서는 그저 자료형 앞에 붙은 정수가 각 자료형마다 무슨 역할을 하는지만 정확히 학습해두시면 됩니다.

 

행복한 하루되세요 :)

  • 관리자
    2020-07-21 11:37:53

    안녕하세요 길벗수험서 운영팀입니다.

     

    먼저 %s 에서 칸수가 확보(ex: &8.3에서 8)되지 않는다면 자연스레 왼쪽부터 출력됩니다.

    정렬의 의미가 없죠.

     

    칸수가 확보되었다면 이때에서나 +우측정렬, -좌측정렬에 의미가 있는 것입니다.

     

    소수점은 문자열에서 글자를 가져오는데 이건 어떤 경우에서나 왼쪽에서부터 소수점의 숫자만큼 글자를 가져오게됩니다.

     

    scanf에서는 문자열에서 제한적으로 글자를 가져올 때 정수를 사용합니다. printf에서 소수점을 사용한 것과 달리요. scanf에서는 소수점을 활용 자체를 하지 않습니다.

    +, - 또한 의미가 없습니다. 데이터 입력에서 정렬은 취급되지 않기 때문이죠.

    scanf에서는 그저 자료형 앞에 붙은 정수가 각 자료형마다 무슨 역할을 하는지만 정확히 학습해두시면 됩니다.

     

    행복한 하루되세요 :)

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.