작성
·
4K
1
getchar(); 를 인식하지 못하고 작동을 하지 못합니다.
오류를 클릭해보면 문제가 int __cdecl getchar(void)라고 뜹니다.
답변 6
2
강의 코드와 비교하여 크게 다를 거 없이 잘 작성 해주셨네요.
프로그램이 아예 실행이 안되시는건가요?
아니면 C6031 경고가 뜨긴 하지만 프로그램 실행에는 문제가 없나요?
만약 오류(Error) 가 아닌 경고(Warning) 라면 크게 신경쓰지 않으셔도 됩니다.
비슷한 사례가 아래 링크에 있는데요,
https://pang2h.tistory.com/180
똑같이 생각해 보면 getchar(); 는 사용자로부터 무언가 입력을 받는 것을 기대하는데,
받은 입력을 아무 변수에 저장하지 않아서 나는 경고이겠구요
char c = getchar(); 와 같이 c 라는 변수에 저장하도록 하면 경고가 사라지리라 봅니다.
만약 오류라면 얘기가 달라지겠지만요.
그런데 예제 코드의 어느 부분에서 getchar() 를 사용하셨나요?
아무리 찾아봐도 보이지 않아요 ㅁ_ㅁ
0
int _cded getchar(void)
C6031:반환값이 무시되었습니다. 'getchar'
라고 뜹니다.
비주얼 스튜디오는 16.2.3 버젼입니다.
systme("pause"); 는 모든 코드를 수행한 후 바로 꺼져버려서 사용하였습니다.
0
getchar(); 이 안되셔서 system("pause"); 로 대체하셨군요?
getchar(); 로 하셨을 때 나오는 모든 에러 메시지를 알 수 있을까요?
사용하시는 비주얼 스튜디오 버전도 알려주세요 ^^
0
0
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <time.h>
int getRandomNumber(int level);
void showQuestion(int level, int num1, int num2);
void success();
void fail();
int main(void)
{
srand(time(NULL));
int cnt = 0;
for (int i = 1; i <= 5; i++) {
int num1 = getRandomNumber(i);
int num2 = getRandomNumber(i);
showQuestion(i, num1, num2);
int answer = -1;
scanf_s("%d", &answer);
if (answer == -1) {
printf("게임을 종료합니다.\n");
exit(0);
}
if (answer == num1 * num2) {
success();
cnt++;
}
else if (answer != num1 * num2) {
fail();
break;
}
}
printf("모든 게임을 끝냈습니다.\n");
printf("5개의 문 중 당신은 %d개의 문을 통과하셨습니다!.\n", cnt);
system("pause");
return 0;
}
int getRandomNumber(int level) {
return rand() % (level * 7) + 1;
}
void showQuestion(int level, int num1, int num2) {
printf("----------------------------\n");
printf("%d번째 문을 열어봅시다.\n", level);
printf("%d * %d는 무엇입니까? 답을 입력하시오 >> ", num1, num2);
}
void success() {
printf("성공입니다!\n");
}
void fail() {
printf("실패입니다!\n");
}
0