PGR21.com
- PGR21 관련된 질문 및 건의는 [건의 게시판]을 이용바랍니다.
- (2013년 3월 이전) 오래된 질문글은 [이전 질문 게시판]에 있습니다.
통합 규정을 준수해 주십시오. (2015.12.25.)
Date 2017/05/25 20:40:58
Name 삭제됨
Subject [질문] 프로그래밍 질문입니다 ㅜㅜ 기초
작성자가 본문을 삭제한 글입니다.

통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
해병쫓는사도
17/05/25 20:48
수정 아이콘
장문의 답을 달았다가 아닌 것 같아서 다시 답니다;
c++; 구문이 error 출력시에만 없어서 그런것 같네요
스타나라
17/05/25 20:50
수정 아이콘
정확히는 error를 두번 찍고 프로그램이 죽어버린게 아닌가 싶군요. 저도 여기에 한표.
세잎클로버
17/05/25 20:52
수정 아이콘
c++아니고 c언어로 작동시키구 있어욥 ㅠ
타츠야
17/05/25 21:15
수정 아이콘
해병쫓는사도님의 댓글은 C++ 언어를 의미하시는 게 아니라 본문에 있는 c++; 코드를 지칭하는 겁니다. while 문 안에서 c의 값을 증가시키는 c++ 코드가 if와 else if 문 안에는 있는데 else 문 안에는 없어서 printf("error"); 코드가 2번 실행되는 거죠. 제가 아래에 단 댓글은 c의 값을 증가시키는 코드를 여러 번 쓰지 말고 한번만 쓰자는 거구요.
세잎클로버
17/05/25 21:22
수정 아이콘
ㅠ 글케 해버리면 else문에서 그냥 함수가 끝나버려서ㅠ 저는 와일문에서 정상적으로 변환되면 와일문 끝나게 c++증가시켜서 와일문 빠져나오는 조건으로 만들고 else가 나왔을땐 와일문 끝내는 조건이 없어서 다시 위로 올라게 해서 재실행 시키려고 하는데 그렇다면 다시 getchar가 나와야되는데 else로 다시한번 가서 그 이후에 getchar가 실행되버려서..ㅠ
타츠야
17/05/25 21:42
수정 아이콘
아 이제 이해했네요. 한마디로 영어 소문자와 대문자 외의 입력 값이 들어오면 error 출력하고 다시 입력 받아서 영어 소문자와 대문자 들어올 때까지 while 문을 반복하고 싶다는 거죠?
그런데 getchar와 putchar 함수가 저게 컴파일이 되나요?
getchar(), putchar(ch) 이렇게 쓰셔야 할 텐데요. 그리고 ch 선언도 char ch 이렇게 바꾸시는게 좋습니다.
바꾸고 한번 해보세요.
타츠야
17/05/25 20:51
수정 아이콘
c++; 구문을 ch = getchar(stdin); 다음 라인에 한번만 넣고 다른 곳에서는 모두 빼세요.
써니는순규순규해
17/05/25 21:32
수정 아이콘
음..
getchar(stdin);
이걸로 문자를 입력 받을 때 2개가 들어가는게 아닌가 싶네요.
c++; 은 while 에서 나가기 위한거고, 에러가 나오면 다시 받으려는거니까요.

문자 입력 시 버퍼에 2개가 들어가고,
getchar(stdin); 로 받을때 키 입력하면 두번 반복해서 생기는 문제일거 같네요.
while 전에 int count = 0; 을 넣고,
while 안의 getchar(stdin); 다음에
count++;
printf("count = %d , ch = %dn", count , ch);
를 넣어서
count 가 몇번 째인지, ch 에는 어떤 값이 들어왔는지 확인해 보세요.
printf 저렇게 쓰는게 맞죠? ;;
한화이글스
17/05/25 22:51
수정 아이콘
getchar는 버퍼링으로 입력 받기 때문에 문자 하나를 입력 받고, 엔터를 치게 되면 버퍼에 문자+뉴라인이 저장됩니다.
입력 시 1+엔터 를 입력하게 되면,
처음 ch에는 1이 저장되니 error를 출력,
다시 while로 돌아와서 getchar를 수행 -> ch에는 뉴라인이 저장.
알파벳이 아니므로 다시 error(2번째)를 출력 합니다.

해결방법은 입력 버퍼를 비우거나, 뉴라인(n)을 따로 처리해 주거나 하는 방법이 있습니다.
fflush를 입력 버퍼 비우는 용도로 사용하는 것은 비표준이니 쓰지 마세요.
세잎클로버
17/05/26 00:08
수정 아이콘
해결됫습니다! n버퍼 지웟네요!감사합니다
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
공지 댓글잠금 [질문] 통합 규정(2019.11.8. 개정) jjohny=쿠마 19/11/08 110771
공지 [질문] [삭제예정] 카테고리가 생겼습니다. [10] 유스티스 18/05/08 133767
공지 [질문] 성인 정보를 포함하는 글에 대한 공지입니다 [38] OrBef 16/05/03 183434
공지 [질문] 19금 질문은 되도록 자제해주십시오 [8] OrBef 15/10/28 216538
공지 [질문] 통합 공지사항 + 질문 게시판 이용에 관하여. [22] 항즐이 08/07/22 268423
181066 [질문] 주말에 뭘 하시나요? [13] 깃털달린뱀519 25/07/06 519
181064 [질문] 서울 송파구 주변 양념돼지갈비 맛집 추천 부탁드려요 [11] 오월의날씨579 25/07/06 579
181063 [질문] 등뒤 견갑골(능형근) 쪽 통증이 낫질 않습니다 [3] stoi1549 25/07/06 1549
181062 [질문] 이 곤충 뭔지 아시는분? [6] Right2482 25/07/05 2482
181061 [질문] 에어컨 몇평짜리 살지 조언을 구합니다 [12] 고민시2197 25/07/05 2197
181060 [질문] 주차하다 긁었을 때 후속대처 [10] 참치등살간장절임2597 25/07/05 2597
181059 [질문] 책만 넣고 다니는 저렴한 가방 있을까요? 5만~20만 [8] 라온하제2307 25/07/05 2307
181058 [질문] 피로회복제 추천 부탁드립니다 [43] 깔끔하게4050 25/07/04 4050
181057 [삭제예정] 스타벅스 아메리카노 쿠폰 필요하신븐 [7] 삭제됨2771 25/07/04 2771
181056 [질문] 게시물 올릴 때 유튜브 주소만 나오게 하려면 어떻게 해야 하나요? [1] 카페알파2800 25/07/04 2800
181055 [질문] 염색샴푸에 대한 질문 및 추천 부탁 드립니다. [8] Love.of.Tears.2645 25/07/04 2645
181054 [질문] MSI 중계보는데 옆에 꽃 표시는 뭔가요????? [4] bifrost3732 25/07/04 3732
181052 [질문] 크로스핏, 복싱체육관 질문합니다. [13] 보아남편1636 25/07/04 1636
181050 [질문] 엑스박스 발로란트 질문입니다. [1] 바람의 빛1891 25/07/03 1891
181049 [질문] 아이폰/아이패드 상단바 부분 누르면 스크롤 최상단으로 올라가는 거 끄는 법이 있나요? [2] liten2025 25/07/03 2025
181048 [질문] 러시아어를 배우려고 하는데 왕초보라서 어떤 책을 봐야 할지 모르겠는데 교재 좀 추천해주세요. [3] 미키맨틀2066 25/07/03 2066
181047 [질문] 둘중 한명의 선수로 살아볼수 있으면 누가 더 매력적이세요? [26] 마르키아르3013 25/07/03 3013
181046 [삭제예정] 바르셀로나 vs FC서울 경기 티켓 구하시는분 있을까요? [4] 삭제됨2068 25/07/03 2068
목록 이전 다음
댓글

+ : 최근 1시간내에 달린 댓글
+ : 최근 2시간내에 달린 댓글
맨 위로