• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

while문

22.05.28 01:52 작성 조회수 145

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

강민철님의 프로필

강민철

2022.05.28

안녕하세요,

"첫번째코드는 -값만나오고 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;
}

 

감사합니다.