소연의_개발일지
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. 코드

<cpp />
#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

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