디시인사이드 갤러리

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

갤러리 본문 영역

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

daily(116.120) 2009.09.12 13:00:45
조회 116 추천 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
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 끝까지 다 본 걸 후회하게 만든 용두사미 드라마는? 운영자 25/07/07 - -
AD 휴대폰 바꿀까? 특가 구매 찬스! 운영자 25/07/02 - -
공지 프로그래밍 갤러리 이용 안내 [88] 운영자 20.09.28 45242 65
2870324 90년대 게임 배구공(119.202) 06:13 3 0
2870323 전쟁나면 이민 가실 거 정함? [1] 넥도리아(112.170) 06:12 7 0
2870321 영화 러브레터 ost 배구공(119.202) 06:02 5 0
2870319 90년대 빌게이츠 아재 강연 배구공(119.202) 05:52 7 0
2870315 자다가 코 막힘 존나 심해서 꺳다 [3] 루도그담당(58.239) 05:30 21 0
2870313 7일에 올려보는 배구공(119.202) 05:28 14 0
2870309 '부정선거론' 한국계 법학자, "이재명 소년원 복역" 허위사실유포 발명도둑잡기(118.216) 04:04 21 0
2870306 증권시장 달러는 미국산 종이일 뿐이라서 공정하지 않다 발명도둑잡기(118.216) 03:32 13 0
2870305 [여적] 장하준의 ‘대선 제안’ 발명도둑잡기(118.216) 03:25 21 0
2870304 장하준 "야당 상법개정안 우려" 발명도둑잡기(118.216) 03:21 20 0
2870303 말하지 않는 자 말하려는 자. 댓글쓰려는 자 댓읽는자. [1] 넥도리아(112.170) 03:18 16 0
2870301 스미스 선장은 정말 타이타닉의 영웅이었을까? 발명도둑잡기(118.216) 03:13 17 0
2870300 안타 까운 일이도 리버풀 은퇴 선수 디오구 조타와 안드레 실바 선수에게 넥도리아(112.170) 03:11 15 0
2870299 작은돈은 되고 큰 돈은 안된다는 부모님. 공임의가치를 돈으로 판단 넥도리아(112.170) 03:06 13 0
2870298 "옷이 젖을까 봐 강을 건너지 못하고" [2] 발명도둑잡기(118.216) 03:04 22 0
2870297 제네들 토해내면 어떻게 될지 궁금하다 넥도리아(112.170) 03:03 14 0
2870295 단순다수결 선거제 있는한 국민의힘 200년 넘게 지속가능 [3] 발명도둑잡기(118.216) 02:51 27 0
2870294 휴대폰 데이터 복구 가능할까요? 넥도리아(112.170) 02:47 17 0
2870293 어제 저녁 발명도둑잡기(118.216) 02:33 20 1
2870291 홍준표가 따라했던 코카콜라의 몰락 발명도둑잡기(118.216) 02:29 19 0
2870290 이해가 존나 안되는게 이준석은 그냥 프로그래밍 신비주의로 갔으면 [1] ㅆㅇㅆ(124.216) 02:27 46 0
2870289 권은비 좆되더라 [1] hrin(220.120) 02:25 191 0
2870288 준석이햄 코드 플로우 보니까 GPT가 짜준게 백프로임 그냥ㅋㅋ ㅆㅇㅆ(124.216) 02:22 48 0
2870287 이준석 보좌진은 그냥 코딩 관련 글 못올리게해라 ㅆㅇㅆ(124.216) 02:16 49 3
2870286 필리핀 공부방 사건 혹시 종교인이었나? 발명도둑잡기(118.216) 02:11 15 0
2870284 님들 저 졸업작품 추천좀 [4] 공기역학갤로그로 이동합니다. 02:07 34 0
2870283 미셸푸코- 감시와 처벌-감옥의 역사 발명도둑잡기(118.216) 02:02 18 0
2870281 류류가 욕을 먹어도 발명도둑잡기(118.216) 01:46 17 0
2870280 인공지능이 전염병 퍼뜨려서 인간 멸종이키는게 가장 위험하다 발명도둑잡기(118.216) 01:42 30 0
2870278 준석이가 만든 프로그램인데 어캐생각함? [6] ㅇㅇ(211.241) 01:36 66 0
2870277 민생 사는거 겁나 좋아하는 인간들 특징민 그냥 특징이 있어 특이 [1] 넥도리아(112.170) 01:19 36 0
2870275 겁나 성심 쓰는듯 휴대폰 사준다는 엄마. 그러나 아들은 반대 넥도리아(112.170) 01:15 18 0
2870273 zenfone 4 데이터 복구할까 민생지원쿠폰으로 가능할까 넥도리아(112.170) 01:11 17 0
2870271 블록퍼즐 알고리즘 배틀 만들었는데 시간 되는 사람 구경 한 번 해봐라 ㅋ 프갤러(118.235) 00:56 29 0
2870269 가난한 남자도 미소녀랑 성관계 할수 있어야됨 ㅇㅅㅇ [2] 류류(210.217) 00:54 38 0
2870268 내란수괴는 감옥에 가야 이 땅이 평화로워진다 발명도둑잡기(118.216) 00:50 15 0
2870266 시사힙합 내란의 힘 발명도둑잡기(118.216) 00:44 16 0
2870263 에바게리온 애니메이터가 지지한 혐중 파시스트 정치인 발명도둑잡기(118.216) 00:19 18 0
2870261 일본이 한국보다 살기 ㅈ같은점 프로외노자갤로그로 이동합니다. 00:14 34 0
2870259 나 보험든게 있는데, 20년전에.... 2007년인가 [3] 넥도리아(112.170) 00:08 23 0
2870258 몇시간 전부터.노트북 인터넷이 안되고 있다 발명도둑잡기(118.216) 00:07 12 0
2870256 나의 경우인 가난한 남자의 성욕 해소법 발명도둑잡기(118.216) 00:01 46 0
2870254 사디스트, 마조히스트의 성욕 해소법 [1] 발명도둑잡기(118.216) 07.06 31 0
2870253 류류같은 소아성애자의 성욕 해소법 [1] 발명도둑잡기(118.216) 07.06 60 0
2870252 사람이 섹스를 하고 싶지만 사정상 오랫동안 못하면 어떻게 되나 발명도둑잡기(118.216) 07.06 34 0
2870251 14~15살 여자 잠지 찢어보고 싶음 [1] 류류(210.217) 07.06 40 0
2870250 오늘의 발명 실마리: 영상 캐릭터를 마음대로 바꾸는 기술 발명도둑잡기(118.216) 07.06 19 0
2870248 류류 등 소아성애자 유전자가 있는 건 아니구나 발명도둑잡기(118.216) 07.06 34 0
2870247 시노자키 아이 근황 발명도둑잡기(118.216) 07.06 34 0
뉴스 윤민수X이예준, 17일 듀엣곡 ‘결혼하지 못하는 이유’ 발매! 디시트렌드 07.04
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2