반응형
Notice
Recent Posts
Recent Comments
관리 메뉴

간단한 개발관련 내용

scanf 연속 사용 시 예기치 않은 에러 방지!! 본문

Computer Science/C

scanf 연속 사용 시 예기치 않은 에러 방지!!

vincenzo.dev.82 2015. 3. 6. 01:02
반응형


학교 다닐 때 다른 블로그에 등록했던 글 복사 ㅎㅎ - http://blog.naver.com/7dbwnckd/50013168713


 

standard input으로 쓰이는 scanf .. 이해를 바로 합시다..

 

간단한 예를 하나 들어보죠...

 

바로 아래의 예를 실행시켜 보면... char를 입력하지 못하고 바로 넘어갑니다.

 

void exScanf()
{

 int a;
 char ch;

 printf("enter a number : ");
 scanf("%d", &a);

 

 printf("enter a charac : ");
 scanf("%c", &ch);  

 printf("a: %d , ch: %c \n", a, ch);
}

 

왜냐하면... 첫 번째 입력후 엔터키를 입력하게 되는데요~

그 엔터기가 그 다음 scanf의 문자로 입력되어지는 결과가 나오거든요~

 

그래서 오류를 수정하면... 2가지 방법으로 수정할 수 있답니다.

둘 중 하나를 택일 하시면 됩니다. ^^;;

 

void exScanf()
{

 int a;
 char ch;

 printf("enter a number : ");
 scanf("%d", &a);

 

//  첫 번째 방법...

 fflush(stdin);  // 버퍼를 비워라.

 

 printf("enter a charac : ");

// 두 번째 방법
 scanf("%*c", &ch);  // * wild gey : 앞에 오는 \n 받지마라는 소리.

 printf("a: %d , ch: %c \n", a, ch);
}

반응형