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

2403docB님의 프로필 이미지

작성한 질문수

C 프로그래밍 - 입문부터 게임 개발까지

프로젝트

getchar(); 에서 오류가 납니다.

작성

·

4K

1

getchar(); 를 인식하지 못하고 작동을 하지 못합니다.

오류를 클릭해보면 문제가 int __cdecl getchar(void)라고 뜹니다. 

답변 6

2

나도코딩님의 프로필 이미지
나도코딩
지식공유자

강의 코드와 비교하여 크게 다를 거 없이 잘 작성 해주셨네요.

프로그램이 아예 실행이 안되시는건가요?

아니면 C6031 경고가 뜨긴 하지만 프로그램 실행에는 문제가 없나요?

만약 오류(Error) 가 아닌 경고(Warning) 라면 크게 신경쓰지 않으셔도 됩니다.

비슷한 사례가 아래 링크에 있는데요,

https://pang2h.tistory.com/180

똑같이 생각해 보면 getchar(); 는 사용자로부터 무언가 입력을 받는 것을 기대하는데,

받은 입력을 아무 변수에 저장하지 않아서 나는 경고이겠구요

char c = getchar(); 와 같이 c 라는 변수에 저장하도록 하면 경고가 사라지리라 봅니다.

만약 오류라면 얘기가 달라지겠지만요.

그런데 예제 코드의 어느 부분에서 getchar() 를 사용하셨나요?

아무리 찾아봐도 보이지 않아요 ㅁ_ㅁ 

0

2403docB님의 프로필 이미지
2403docB
질문자

int _cded getchar(void)

C6031:반환값이 무시되었습니다. 'getchar'

라고 뜹니다.

비주얼 스튜디오는 16.2.3 버젼입니다.

systme("pause"); 는 모든 코드를 수행한 후 바로 꺼져버려서 사용하였습니다.

0

나도코딩님의 프로필 이미지
나도코딩
지식공유자

getchar(); 이 안되셔서 system("pause"); 로 대체하셨군요?

getchar(); 로 하셨을 때 나오는 모든 에러 메시지를 알 수 있을까요? 

사용하시는 비주얼 스튜디오 버전도 알려주세요 ^^

0

2403docB님의 프로필 이미지
2403docB
질문자

코드 올렸습니다!

0

2403docB님의 프로필 이미지
2403docB
질문자

#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

나도코딩님의 프로필 이미지
나도코딩
지식공유자

안녕하세요?

적어주신 내용만 가지고는 확인이 어렵네요.

작성하신 전체 소스코드를 올려주시면 도움 드리겠습니다 ^^

감사합니다.

2403docB님의 프로필 이미지

작성한 질문수

질문하기