scanf("%d", &a.calories); 여기 뭐 문제라도 있나 왜 첫글자는 씹히고 입력이 될까 아님 어디 초기화 안헀나 왜 안돼이거
암만생각해도 모르겟다
익명(1.254)
2021-12-13 00:41
추천 0
댓글 5
다른 게시글
-
난 미래를 내다볼수 있다 ㅋㅋㅋ한국은 필히 멸망한다 ㅋㅌ [2]응애 아기..(122.42) | 21.12.13추천 0
-
취직을해도 투자를 잘해야 노후가 보장되니까 진짜 힘들다 [2]익명(183.96) | 21.12.13추천 0
-
이번 자바 취약점사태보면서 바나나 멸종 생각남 [1]익명(110.70) | 21.12.13추천 0
-
얘들아 나 롤 접으라고 한마디 해주셈 [10]노루맛피가..(piriya) | 21.12.13추천 0
-
국비충 포괄 2400으로 연명가능? [1]익명(118.235) | 21.12.13추천 0
-
이번주에 퇴사한다고 말한다 [3]익명(210.57) | 21.12.13추천 0
-
밑에 신세계 연봉 잘못됬더라ㅇㅇㅇ(118.235) | 21.12.13추천 0
-
개발자 1년차 프론트엔드로 연봉 3500찍으려면 어디 들어가야함? [9]익명(211.209) | 21.12.13추천 0
-
솔직히 초등학생도 개발은 가능하지 ㅋㅋ [15]익명(211.115) | 21.12.13추천 3
-
배틀로얄 오랜만에 보니 그시절 생각하면익명(cwp611) | 21.12.13추천 0
질문을 남길거면 좀 구체적으로 남겨
scanf저거가 a.calories에다가 입력받은 숫자를 넣잖아 1234 입력하면 234로 들어가
scanf 위에 getchar(); 이게 꼭 필요가 있을까? gets 함수 특성상 버퍼에 남은 개행문자도 널문자로 바꿔서 배열에 저장해주니까 버퍼에 개행문자가 남아있지 않을텐데 굳이 getchar();를 적어주지 않아도 될 거 같은데
즉 1은 지금 개행문자가 남아있지 않은 상황에서 getchar(); 가 들어가 있으니 1234에서 1을 칼로리 밑에 getchar()가 잡아먹고 버려버린거임. 그래서 scanf("%d",&a.calories); 를 하게되면 버퍼에 남아있는 234만 칼로리 변수에 넣게되서 234만 출력되는거
감사해요