유데미 나동빈 강사님의 강의를 보고 따라해 본 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 프로그램으로 코드 실행한 것
'개발공부 > C언어' 카테고리의 다른 글
C언어_다양한 모양 별찍기 (1) | 2023.03.26 |
---|---|
C언어_다양한 구구단 출력 프로그램 만들기 (0) | 2023.03.25 |
C언어_if문 이용해서 자판기 만들기 (0) | 2023.03.24 |
C언어_변수 (0) | 2023.03.22 |
C언어_스트링 포맷(string format) (0) | 2023.03.22 |