디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

형님들 C언어 간단한 질문 하나만 드릴꼐요 돠주세요.

daily(116.120) 2009.09.12 13:00:45
조회 108 추천 0 댓글 1

#include <stdio.h>
void main(void)  //성적을 입력받아 몇번 인지 확인하는 프로그램
{
 int grade,count;  // 성적,횟수
 char ch,select;  //입력받기 위한 변수 ch 와  프로그램 재실행 유무 변수 select
 
 count = 0;

 while( select != \'n\' && select !=\'N\' )    //재실행 여부시 N이나 n을 입력하면 멈춘다.
 {
  grade = 0;     // grade의 값이 한없이 늘어나는 것을 방지하기위한 초기값 0
  printf("\\n성적을 입력하여주세요:  ");
  
  while( (ch = getchar() ) != \'\\n\' )
  { 
   grade = grade * 10 + ( ch - \'0\');        //성적을 입력받는다.
  }
  
  count++;  //성적 입력받은 횟수를 증가한다.
  
  while(1)   // 재실행 질문시 올바른 답변을 확인하기위한 루프
  {
  printf("계속 하시겠습니까? (Yes : Y/y , No : N/n) : ");
  select = getchar();
  fflush(stdin);
  if (select == \'n\' || select ==\'N\' || select ==\'y\' || select ==\'Y\')  //n,N,y,Y값중 하나라도 입력되면 멈춘다.
  break;
  printf("입력을 다시해주세요 잘못된 값입니다\\n");  //n,N,y,Y값중 하나도 입력되지 않은경우  "계속하시겠습니까"로 돌아간다.
  }
 
 }
  printf(" 총 %d 번 입력하였습니다 ",count);  //횟수를 출력

}
 
 다름이 아니고. 요즘 학원에서 scanf를 쓰지말고 getchar를 통해 입력받아 문제를 푸는것을 연습중인데요.

 getchar 형의 경우 엔터를 입력하기전까지 stdin 버퍼에서 하나씩 값을 불러 들이는걸로 알고있습니다.

  근데 위의 식에서   fflush(stdin); 을 지우면  다음반복시에 성적 입력 부분을 무시하고 넘어가더군요.

 scanf야 그렇다쳐도     getchar 명령어는 분명   \\n 값이 들어오기 전까지의 값을 입력받는다. 인데 

  계속하시겠습니까 ?  3\\n  이렇게되면
 

   성적을 입력해주세요 : 80
   계속 하시겠습니까? <Yes : Y/y , No : N/n> : 3
   입력을 다시해주세요 잘못된값입니다 
    계속 하시겠습니까? <Yes : Y/y , No : N/n> : 입력을 다시해주세요 잘못된 값입니다.
     계속 하시겠습니까? <Yes : Y/y , No : N/n> 

   이렇게 출력이 되더군요. 제가 이해하기로는 
   select = getchar() 후    
   y,n 체크문에서 select 값을  Enter 로 인식해서 " 입력을 다시해주세요"  가 뜨고  다음
   select = getchar() 문에서도 Enter로 값을 인식해서 또 내려가고
   "입력을 다시해주세요" 까지 뜨고나서  다음 getchar에선 Enter를 비우고 나서
   받는것으로 이해를 했습니다.  
   이 구문을 해결하기 위해서 select = getchar(); 문장밑에 fflush(stdin)을 사용하여 해결했습니다.
   여기서 궁금한 사항이있습니다.

    getchar() 입력을 받을때 예를 들어 ABCD \\n 를 입력했습니다.
    처음 getchar 형에선 A가 뜬다음  언제 다음 문자를 stdin 읽는것입니까
    다음 getchar 형이나 scanf 처럼 입력함수가 오기전까지 계속 대기하는건가요?
    그리고 A다음엔  B가 아니라 \\n이 읽혀지는 이유가 무엇인지요 
   
   getchar()문에서는 엔터 무시해야되는거 아닌가요? 명령어 내용이 \'엔터\'를 입력받기 전까지의 내용을 출력한다 인데요?
   

 

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 힘들게 성공한 만큼 절대 논란 안 만들 것 같은 스타는? 운영자 24/06/10 - -
159253 오늘 점심은 보신탕이다. [4] 피로토스갤로그로 이동합니다. 09.11.27 99 0
159251 dll만들다가 안되는게 있어서 횽들에게 질문함니다. [8] 늅늅(59.6) 09.11.27 87 0
159250 여기가 프로그래밍으로 만들 수 없는게 없다는 프갤인가요? [9] 늅늅(124.197) 09.11.27 111 0
159249 C# 데이터그리드뷰에서 컬럼을 그리드뷰 크기만큼 늘려주는건 어떻게? [2] 클라리네이갤로그로 이동합니다. 09.11.27 403 0
159246 횽들 opengl 공부 시작할라는데... [4] 쉐떠뻑(112.144) 09.11.27 99 0
159245 프로그램 내부에 데이터가 있고, 그 데이터를 UI에 뿌려주는 경우에 말야 [4] 고추장불고기갤로그로 이동합니다. 09.11.27 87 0
159244 나 군대간다... [12] 노소프소갤로그로 이동합니다. 09.11.27 158 0
159243 형들 식사는 어떻게 하나요? 독대(222.109) 09.11.27 84 0
159241 횽들 이거 질문좀요 무작위수 뽑는 프로그램 ㅠㅠ [15] 노소프소갤로그로 이동합니다. 09.11.27 116 0
159240 아침을 여는 엄친아 [2] 유리한갤로그로 이동합니다. 09.11.27 98 0
159237 지금(아까) 프갤을 휩쓴 여캐는 봅니다 [3] 고추장불고기갤로그로 이동합니다. 09.11.27 106 0
159234 가슴아프다 우리나라 IT 연봉.. [9] AL갤로그로 이동합니다. 09.11.27 502 0
159233 의으읭읭읭읭 연어갤로그로 이동합니다. 09.11.27 41 0
159232 내 첫 애마 몽뇽이야.. [8] Pupustory갤로그로 이동합니다. 09.11.27 152 0
159231 전세계 IT엔지니어 연봉 [8] 출입증갤로그로 이동합니다. 09.11.27 285 0
159230 터졌군여... [11] ㅇㄴㅣㅏ갤로그로 이동합니다. 09.11.27 155 0
159229 님들아 프로그래머가 무슨 여캐에요 [6] AL갤로그로 이동합니다. 09.11.27 173 0
159228 어익후. 늦엇다. [4] 혼아갤로그로 이동합니다. 09.11.27 112 0
159227 내가 지금 뭐하고있을거같냐 이쉛기들아 [13] 개쉛기갤로그로 이동합니다. 09.11.27 144 0
159226 에버그린 미틴년아 당장 이글 쳐봐라 [4] 아놔(67.182) 09.11.27 142 0
159224 열도의 결혼식 [1] 신발라마갤로그로 이동합니다. 09.11.27 96 0
159223 하루의 종료를 디씨로. 위디안갤로그로 이동합니다. 09.11.27 61 0
159222 안녕하신가. 힘쎄고 강한아침 DMW(125.138) 09.11.27 83 0
159221 요즘 덕후 드립을 너무 많이 친것 같아. JuEUS-U갤로그로 이동합니다. 09.11.27 88 0
159220 이력서 냈더니 메일로 과제가 왔슴 [2] 맥콜(124.61) 09.11.27 144 0
159219 사칙연산 떡밥 [3] IHF갤로그로 이동합니다. 09.11.27 229 0
159217 MFC로 스네이크 게임 GUI구현해야하는데... [9] 뉴비(61.103) 09.11.27 270 0
159215 팀원이 짜온 코드를 보고 미친듯이 웃었습니다... [2] 성대아싸(121.137) 09.11.27 168 0
159214 여자 꽁무니나 쫓아다니다니, 한심하군 [4] JuEUS-U갤로그로 이동합니다. 09.11.27 169 0
159212 요즘 몸이 많이 이상해짐... [2] 설계의중요성(112.149) 09.11.27 62 0
159211 개쉛기는 따듯함입니다. [2] 개쉛기갤로그로 이동합니다. 09.11.27 80 0
159210 아무 생각없이 DB설계 및 잡코딩 하다가... [5] 설계의중요성(112.149) 09.11.27 90 0
159209 Friday dawn [1] ㅇㅇㅃ갤로그로 이동합니다. 09.11.27 64 0
159208 아 프로젝트 조또 힘들다. [5] ㅇㅇ(112.149) 09.11.27 119 0
159206 이 과제 좀 알려주시는 분 계시면 대신 뇨자 인증 사진 올릴께요 ㅠㅠ [9] 알고리저(121.133) 09.11.27 120 0
159205 떡밥 [3] IHF갤로그로 이동합니다. 09.11.27 80 0
159204 뇨자가 여자라고 해도 과제땜에 잠깐 스쳐가는 사람일뿐 [4] 케케켁켁갤로그로 이동합니다. 09.11.27 138 0
159203 평생코더 [2] prismatic갤로그로 이동합니다. 09.11.27 79 0
159202 프갤이야기 [10] IHF갤로그로 이동합니다. 09.11.27 114 0
159201 어제 저장한 뇨자 인증사진 [5] 케케켁켁갤로그로 이동합니다. 09.11.27 155 0
159199 학생은 공부를 해야한다. [4] IHF갤로그로 이동합니다. 09.11.27 84 0
159197 뇨자횽은 봄미다. [13] 개쉛기갤로그로 이동합니다. 09.11.27 122 0
159196 이제 알고리즘에 대해 알았어 [2] URA!갤로그로 이동합니다. 09.11.27 77 0
159194 올리디버그에 쓰이는 api 함수 알려준 구원자 없나연 [1] 오랜만이얔ㅋ갤로그로 이동합니다. 09.11.27 65 0
159193 모토로라 믿으세요 [3] 모느님(118.34) 09.11.27 50 0
159189 아 손시려.. [1] IHF갤로그로 이동합니다. 09.11.27 59 0
159188 뇨자 너 이 새끼 이거 [5] LightEach갤로그로 이동합니다. 09.11.27 132 0
159185 횽들 나 하나만 물어볼게 [3] 11(121.169) 09.11.27 51 0
159184 깨어있는 고정닉만 손~ [8] 물속의다이아갤로그로 이동합니다. 09.11.27 62 0
159183 형아들 컴퓨터가 나하고 싸우자는데? [2] 와하하하ㅏㅅ(121.64) 09.11.27 58 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2