• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

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

21.07.01 19:21 작성 조회수 237

0

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

int main()

{

char c;

int rows, cols;

printf("Input one character and two integers : \n");

while ((c = getchar()) != '\n')

{

scanf("%d %d",&rows, &cols);

display(c, rows, cols);

printf("Input another charcter and two integers:\n");

printf("Press Enter to quit.\n");

}

return 0;

}

저는 여기서 입력시키면 다시 입력 할 수 없습니다.

c=getchar() 에서 \n 가 마지막에 입력되서 

프로그램이 종료되는 거라면 

어째서 선생님 강의에서는 종료되지 않습니까 ?

답변 2

·

답변을 작성해보세요.

0

5:13 이부분이 맞고요 

* 3 5 를 입력후 또 입력할 수 있는데 전 입력 할 수 없습니다.

안소님의 프로필

안소

2021.07.08

미세한 차이긴 한데요! 강의에서는 

* 3 5 공백 

이렇게 입력하셨습니다.

강의와 똑같이 * 3 5 공백  을 입력하면 강의와 똑같이 입력 또 할 수 있네요! 

반면에 * 3 5 까지만 입력하고 엔터치셨으면 질문자님처럼 종료가되네요!

아... 미세한 차이네요 감사합니다!

0

안소님의 프로필

안소

2021.07.03

입력시키면 다시 인력할 수 없다고 말씀하신게 5:25 강의의 현상을 말씀하신건가요?

질문자님과 동일한 코드는 교수님의 강의에서도 다시 입력할 수 없는 그런 현상이 똑같이 발생합니다. 그래서 후반부에서 버퍼를 비워주는 코드를 넣어주신 것입니다! 

혹시 질문 주신 코드 말고 버퍼 비우는 코드 추가하여 보완한 코드 말씀하시는건가요? 강의에서도 등장하는 코드가 여러개라 강의의 어떤 코드를 말씀하시는 것인지 잘 모르겠습니다 ㅠㅠ (질문자님과 동일한 코드는 강의에서도 다를 거 없이 똑같은 현상이 발생합니다.)

질문자님께서 어떤 부분에 대해 의문을 가지고 계신 것인지 파악이 잘 되지 않습니다. 죄송합니다.ㅠㅠ 구체적으로 강의의 어떤 시간대의 어떤 코드를 언급하시는 것인지와 의문을 가지시는 현상에 대한 자세한 설명을 함께 알려주시면 답변을 드리는데에 큰 도움이 됩니다. 

저 코드 실행시키면, 강의내용에서는 다시 입력을 할 수 있는데

제가 실행시켰을 때는 버퍼에 \n 이 있어서 프로그램이 바로 꺼집니다.

안소님의 프로필

안소

2021.07.03

강의에서 저 코드가 등장하는 시간대에서도 버퍼의 \n 으로  인하여 종료되는 현상이 똑같이 발생합니다. 그래서 제가 질문에 대한 이해가 잘 되지 않아 강의의 어떤 시간대 말씀하시는건지 구체적으로 말씀해달라고 여쭤본거였어요..! 해당 강의 시간대 구체적으로 말씀해주시면 감사하겠습니다. 그리고 어떤 입력을 하셨는지도 구체적으로 알려주세요!