일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 성능
- 페이스북 번역
- gcm 푸시 번역
- Push
- notification
- APNS
- 자바스크립트
- 디자인패턴
- NoSQL
- Design Pattern
- git
- 푸시 번역
- 웹사이트성능
- GCM
- 푸시
- redis
- kafka
- JPA
- nginx설정
- 레디스
- 웹사이트 성능
- 웹사이트최적화기법
- Java
- 카프카 트랜잭션
- 카프카
- GCM 번역
- nginx
- php
- nginx설치
Archives
- Today
- Total
간단한 개발관련 내용
scanf 연속 사용 시 예기치 않은 에러 방지!! 본문
반응형
학교 다닐 때 다른 블로그에 등록했던 글 복사 ㅎㅎ - 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);
}
반응형