작성
·
187
0
강의 6.1에서 처음스스로작성해보라할때 while문 작성하다 scanf(" %c", &n);로작성했다가 합이 이상해서 (합이상한건 왜그런지 해결됬습니다) 따로다른코드작성해보다 질문합니다
첫번째코드에서 만약 -100을입력하면 45가나오고
2번째 while문이 있는코드에서는 -100을입력하면 45 49 48 48 나오는데
첫번째코드는 -값만나오고
while문으로작성한코드는 -값 1값 0값 0값 이렇게다 따로 나오는 이유는 뭔가요?
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int i = 1;
scanf("%c", &i);
printf("%d", i);
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int i = 1;
while(1)
{
scanf(" %c", &i);
printf("%d\n", i);
}
return 0;
}
답변 1
0
안녕하세요,
"첫번째코드는 -값만나오고 while문으로작성한코드는 -값 1값 0값 0값이 나온다"는 말씀이 정확히 어떤 의미인지는 모르겠으나,
두 번째 코드에서 버퍼에 남은 값들이 모두 출력되는 것을 방지하기 위해서라도 아래와 같이 입력 서식 문자와 출력 서식 문자를 맞춰주시는 것을 권장합니다.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int i = 1;
while (1)
{
scanf("%d", &i);
printf("%d\n", i);
}
return 0;
}
감사합니다.