C언어 문제 질문
조회수 823회
임의의 문자를 입력받아 입력한 문자를 반복 출력하는 프로그램을 작성하시오. 단 (Q)를 입력하면 프로그램이 종료된다.
한 문자 입력 : A
입력한 문자: A
한 문자 입력 : d
입력한 문자: d
한 문자 입력 : Q
라는 문제인데요..
char ch;
while (ch != 'Q')
{
printf("한 문자 입력: ");
scanf("%c", &ch);
printf("입력한 문자: %c\n", ch);
}
return 0;
}
이건 제가 짠 코드인데 오류가 납니다. 도와주세요.
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
1 답변
-
#include <stdio.h> int main() { char ch = NULL; // 문자를 받을 변수 ch NULL 초기화 while(1) { printf("한 문자 입력: "); ch = getchar(); fflush(stdin); // 입력버퍼 비우기 if(ch != 'Q') printf("입력한 문자 : %c \n\n",ch); // ch Q가 아니라면 else break; // ch가 Q라면 반복문탈출 } return 0; }
질문자님이 주신 문제를 토대로 출력값이 제대로 나오도록 고려해서 코드를 재작성했습니다.
그리고 질문자님이 올리신 코드에서 오류가 발생한 이유는 ch 라는 변수를 선언하고 정의를 하지않은상태 ( 즉 , 초기값을 주어지지않아 쓰레기값이 들어있는상태) 에서 while반복문에서 관계연산을 하게되니 , 오류가 발생한것 같습니다
그래서 저의 코드에서는 ch 변수에 NULL 값을 넣어 초기화했습니다.
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
댓글 입력