c언어 %s %c 질문 있는데 도와주실분 있나요??

글쓴이: 익명 사용자 / 작성시간: 토, 2019/10/19 - 7:35오후
#include <stdio.h> int main(void) { char str[101] ={0,}; int N; int i; int sum = 0; scanf("%d", &N); scanf("%c", str); for (i=0; i<N; i++){ sum += str[i] -'0'; } printf("%d", sum); return 0; }
공백없는 숫자의 문자열을 받아서 합을 출력하는 코드입니다. 코드를 수정 해달라는 질문은 아니고요 원래 %s를 써야하는데 %c를 썼습니다. 위에처럼 그런데 %c로는 문자열을 받을 수 없는 것은 알긴 하는데 왜 N을 입력받는 순간 프로그램이 끝날까요? 컴파일러는 DEV C++입니다.
scanf("%s", str);
Forums:
입력을 어떻게 줬는지는 모르겠으나, 십중팔구 숫자(N
입력을 어떻게 줬는지는 모르겠으나, 십중팔구 숫자(N)를 입력한 후 공백문자가 들어갔겠지요.
%s는 문자열을 입력 받기 전에 공백문자를 스킵하지만 %c는 그렇지 않아서 공백문자 입력 받고 그냥 넘어갑니다.
이거 몰라서 헤매는 초보자들 엄청 많아요. 거의 통과의례 수준.
아하 그렇군요 감사합니다 그런거 같네요!
아하 그렇군요 감사합니다 그런거 같네요!
댓글 달기