안녕하세요.
scanf("%d %d %d", &a,&b,&c,); 라고 했을때 실행시키고 3개변수에 넣기위해서는
10 20 30이렇게 입력을 해줘야 하는데요.
102030 이런식으로 띄지않고 입력받고 a,b,c로 가게 하는 방법은 무엇인가요?
이렇게하는 용어를 몰라 검색도 못하고있습니다 ㅠㅠ;
scanf("%2d%2d%2d", &a, &b, &c); int형 숫자 두개씩(두자씩?) 읽습니다. 어차피 scanf 는 중간에 있는 whitespace를 무시하니까 띄어쓰기 해도 안해도 상관 없을 것 같습니다.
:)
ensky0님의 답글대로 하시면 됩니다.
질문 글에 있는 형식 %d %d %d 대로 입력하려면 중간에 스페이스가 있어야 합니다. 앞에서부터 공백이 나올때까지 읽어서 첫번째 변수에 넣고 다음 공백까지의 숫자를 두번째 변수에 넣으니까 10 20 30을 입력해야 a,b,c 모두 값이 들어갈 수 있습니다.
%2d라고 형식을 지정하면 숫자가 3자리 이상 들어가도 앞 두자리만 읽어옵니다. 102030으로 입력하려면 %2d%2d%2d라고 형식을 지정하고 실제 입력할때 공백이 들어가면 안됩니다.
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
원하시는게 맞는지는 모르겠지만...
scanf("%2d%2d%2d", &a, &b, &c);
int형 숫자 두개씩(두자씩?) 읽습니다.
어차피 scanf 는 중간에 있는 whitespace를 무시하니까
띄어쓰기 해도 안해도 상관 없을 것 같습니다.
http://kldp.org/node/101601#comment-471326
:)
:)
ensky0님의 답글대로
ensky0님의 답글대로 하시면 됩니다.
질문 글에 있는 형식 %d %d %d 대로 입력하려면 중간에 스페이스가 있어야 합니다.
앞에서부터 공백이 나올때까지 읽어서 첫번째 변수에 넣고 다음 공백까지의 숫자를 두번째 변수에 넣으니까
10 20 30을 입력해야 a,b,c 모두 값이 들어갈 수 있습니다.
%2d라고 형식을 지정하면 숫자가 3자리 이상 들어가도 앞 두자리만 읽어옵니다.
102030으로 입력하려면 %2d%2d%2d라고 형식을 지정하고 실제 입력할때 공백이 들어가면 안됩니다.
댓글 달기