인프런 커뮤니티 질문&답변

휴식중인너구리님의 프로필 이미지
휴식중인너구리

작성한 질문수

홍정모의 따라하며 배우는 C언어

8.5 숫자와 문자를 섞어서 입력받기

2:09초 디버깅 해보는데 도와주세요

작성

·

271

0

Buffer값을 상상하면서 디버깅 해보고 있는데 어느 방식으로 동작하는지 모르겠습니다.

입력 : A 3 3 
Buffer : [' ', \n]
c : 'A'
rows : 3
cols : 3
입력: B 1 2 
Buffer : [\n, B, 1, 2, \n]
c : ' '
rows : 3
cols : 3

Buffer에서 ' ' 가져와서 c가 ' ' 것은 알겠지만

rows와 cols 값이 3인지 이해가 안됩니다.

입력 :
Buffer : [B, 1, 2, \n]
c : 'B'
rows : 1
cols : 2

왜 입력을 받지 않는지 궁금합니다.

답변 2

0

'rows와 cols 값이 3인지 이해가 안됩니다.'

'왜 입력을 받지 않는지 궁금합니다.'

라고 말씀해주신 질문이 다소 모호한 것 같습니다.

다만 'rows와 cols 값이 3인지 이해가 안됩니다.' 에 대한 질문은

버퍼 /row / cols 값을 '상상' 하지 마시고 직접 breakpoint를 찍어보시면

쉽게 그 이유를 알 수 있을 것이라 생각합니다.

왜 입력을 받지 않는지 궁금하다는 질문에 대해서는 개행이 버퍼에 들어간 것은 아닌지 살펴보세요.

0

#include <stdio.h>

void display(char cr, int lines, int width);

int main()
{	
	char c;
	int rows, cols;


	while (1)
	{
		scanf("%c %d %d", &c, &rows, &cols);
		display(c, rows, cols);

		if (c == '\n')
			break;
	}
	
	return 0;
}

void display(char cr, int lines, int width)
{	
	int row, col;
	for (row = 1; row <= lines; row++)
	{
		for (col = 1; col <= width; col++)
			printf("%c", cr);
		printf("\n");
	}
}

최근 질문에 답변드리겠습니다.

휴식중인너구리님의 프로필 이미지
휴식중인너구리

작성한 질문수

질문하기