소연의_개발일지
article thumbnail

유데미 나동빈 강사님의 강의를 보고 따라해 본 C언어 계산기 만들기이다. 

출처: https://www.udemy.com/course/c-programming-basic/learn/lecture/7841942#overview


 

1. 배운 내용

while문과 scanf함수, if문을 활용하여 간단한 계산기 만들기

 

while문은 계산기가 계속 진행될 수 있도록 반복한다. 

scanf함수는 사용자가 원하는 수식을 받는다.

if문은 사용자가 작성한 수식에 따라 이동할 수 있도록 한다.

 

 

2. 고민한 내용

강사님이 하시는 강의를 보다가 멈추고 혼자 만들어 봤는데 오류가 생겼다.

자꾸 수식 밑에 입력이 잘못되었다는 신호가 나오는게 아닌가..?

그래서 계속 강의를 보니까 getchar();를 넣어주어야 한다고 하셨다.

그래서 넣으니 해결완!

 

 

 

3. 오늘 새로 배운 내용

 

getchar() 함수

C언어에서 사용되는 입력 함수 중 하나이다. 이 함수는 표준 입력 스트림으로부터 한 문자씩 입력을 받아오는 기능을 한다.

키보드로 입력한 문자나 파일에서 읽어드린 문자를 한 글자씩 읽어나간다.

getchar 함수는 입력 버퍼에서 한 문자씩 가져오는 함수이므로, 엔터키까지 입력을 받아들인다.

따라서 여래개의 문자를 입력받을 때는 반복문을 사용하여 입력받아야 한다. 

 

4. 코드

#include <stdio.h>
int main(void)
//간단한 계신기 
{
	char o;
	int x, y;
	while(1)
	{
		printf("수식을 입력하세요: ");
		scanf("%d %c %d",&x, &o, &y);
		if(o=='+')
		{
			printf("%d %c %d = %d\n", x, o, y, x+y);
		}
		else if(o=='-')
		{
			printf("%d %c %d = %d\n", x, o, y, x-y);
		}
		else if(o=='*')
		{
			printf("%d %c %d = %d\n", x, o, y, x*y);
		}
		else if(o=='/')
		{
			printf("%d %c %d = %d\n", x, o, y, x/y);
		}
		else if(o=='%')
		{
			printf("%d %c %d = %d\n", x, o, y, x%y);
		}
		else
		{
			printf("입력이 잘못 되었습니다.\n");
		}
		getchar();
		/*C언어는 버퍼를 처리해주지 않았기 때문. 
		엔터를 하나의 문자로 인식하기 때문에 엔터를 답으로 인식한 것임.
		getchar를 입력함으로써 줄바꿈(엔터)를 효율적으로 처리 가능.*/
		printf("프로그램을 종료하시겠습니까? (y/n) ");
		scanf("%c", &o);
		if(o=='n' || o=='N')
		{
			continue;
		}
		else if(o=='y' || o=='Y')
		{
			break;
		}
		else
		{
			printf("잘못 입력하셨습니다.\n");
		}
		
		
	}
	
	return 0;
}

dev 프로그램으로 코드 실행한 것

profile

소연의_개발일지

@ssoyxon

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!