scanf에 대해 간단한 질문입니다
글쓴이: leenowon97 / 작성시간: 월, 2015/12/28 - 12:42오전
프로그램 실행 시 무언가를 입력받는(scanf를 이용한) 소스 코드를 작성할 때 printf와 scanf를 쓸 때 printf문을 쓰고 그 다음 줄에 scanf를 씁니다. 그런데 프로그램을 실행할 때에는 printf문 옆에 수를 입력하네요 왜 그런지 이해가 잘 안됍니다.
ex) [소스 코드 : ~~~
printf("숫자 입력 : ");
scanf("%d",&num);
~~~
프로그램 실행 : 숫자 입력 : 100 ]
Forums:
[책을 보시면 이해가 빠르실거라 생각됩니다만...]
사족을 달자면, printf() 함수 자체가 출력문이며, scanf()자체가 키보드로 부터 값을 입력받는 것 입니다. 생각하건데, printf() 자체가 출력문인데 왜 값을 입력 받을 때 scanf()에서 받지 않는 가에 대해 생각하시는 것 같으십니다만...
scanf()자체는 인자를 받기위한 함수 그 자체이지 출력을 담당하는 것이 아니기에 어찌보면 당연한 결과입니다. 만약 원하시는 바가 출력문 바로 옆에 값을 받는 것이 아닌 출력문 안에서 값을 받는 것을 원하시는 것 이라면 개행처리를 하시면 됩니다.
예를 들면,
int main(void)
{
int num;
printf("Input integer number: \n"); // \n은 개행(줄바꿈)처리하기 위한 특수문자
scanf("%d", &num); // 배열이나 포인터로 들어가실 때 쯤 되면 &의 의문점도 풀리시겠지만 아시고 싶으실 수도 있어서 설명을 하자면 일종의 해당 변수의 시작 주소값을 가리킨다고 생각하시면 됩니다.
printf("Result num: %d", num);
return 0;
}
다시 한 번 말씀드리지만 scanf() 함수 그 자체는 값을 입력받는 용도(printf()함수 많으론 출력만을 수행합니다.) 그 이상 그 이하도 아니라는 것을 유념하시면 되겠습니다.
다 지우고. 그 코드만 사용해서 테스트해보세요.
...
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
다음줄에 입력받고 싶으면 printf("숫자 입력 :
다음줄에 입력받고 싶으면
하시면 되요...
개행문자에 대해 공부하시면 될듯..
소곤소곤
댓글 달기