진심으로 감사드립니다^^ 좋은 하루 보내세요!
송신영 님이 쓰신 글 :
: gets(char *) 를 사용하시면 됩니다.
: 이 함수는 사용자가 Enter Key를 입력할 때 까지 작성한 모든 문장을 입력받습니다.
: scanf() 는 공백이 있으면 그 공백까지만 입력받고 Enter 입력까지 모두 받지 못합니다.
: getch()는 문자 하나만 입력받고 Enter 키 없이 바로 입력 받습니다.
:
: 서덕만 님이 쓰신 글 :
: : 답변 주셔서 진심으로 감사드립니다.
: :
: : 아직 초보라 모르는게 많은데 스택에 대해 공부하고, 다시 프로그램을 짜보려고 하고 있습니다.
: :
: : strcpy(buf , " ");
: :
: : 이 위에 소스에서 " " <-- 사이에 문자를 입력받아서 계산을 하려고 만들어 보았는데
: :
: : 이 사이에 입력을 받기 위해선 어떠한 함수가 필요하나요? 임의적으로 숫자와 연산자를 넣으면 계산이 되는데
: :
: : 입력을 받을려고 하니까 도저히 모르겠습니다.
: :
: : 가르쳐주시면 감사하겠습니다.
: :
: :
: : 송신영 님이 쓰신 글 :
: : : 일반적인 수식을 계산하기 위해서는
: : : 프로그래밍으로 계산하기 편한 방식으로 수식을 변경해야합니다.
: : : 아래 작성하신 코드는 그냥 단순한 단일 계산만 가능하구요
: : : 이런 구조로는 복잡한 수식을 계산하는 코딩을 할 수 없습니다.
: : : 계산기를 만들기 위해서는 infix, prefix, postfix 에 대한 선행 학습이 필요합니다.
: : : 제가 인터넷 검색으로 그냥 대충 찾은 싸이트 공유합니다.
: : : 해당 키워드로 검색하여 공부를 좀 해야 계산기 다운 계산기를 만드실 수 있습니다.
: : :
: : : 참조 :
http://blog.naver.com/ryutuna?Redirect=Log&logNo=100122313091
: : :
: : : 서덕만 님이 쓰신 글 :
: : : : 안녕하세요 질문 있어서 글 올립니다
: : : :
: : : : 이제 막 Visual C++을 이용해서 프로그램을 좀 만들어보려고 하는 사람인데요
: : : :
: : : : 계산기를 만들고 있는데 아래와 같은 소스를 만들었습니다.
: : : :
: : : : 똑같은 코드가 자꾸 반복 되는데 For문을 이용해서 이걸 반복 할 수 있나요?
: : : :
: : : : 아래 보시면 연산자 기호를 입력을 받는데 소스를 한번만 써도 반복해서 입력 받을 수 있는 방법이 있을까요?
: : : :
: : : : 조언 좀 부탁 드리겠습니다.
: : : :
: : : :
: : : : #include "stdafx.h"
: : : :
: : : :
: : : : int main(int)
: : : :
: : : : {
: : : :
: : : : float a[100] = {0};
: : : : char b, c, d, e, f, g;
: : : :
: : : : printf("수식을 입력하세요 : ");
: : : : scanf("%f%c%f", &a[0], &b, &a[1]);
: : : :
: : : : switch ( b )
: : : : {
: : : : case '+':
: : : : a[2] = a[0] + a[1];
: : : : break;
: : : : case '-':
: : : : a[2] = a[0] - a[1];
: : : : break;
: : : : case '*':
: : : : a[2] = a[0] * a[1];
: : : : break;
: : : : case '/':
: : : : a[2] = a[0] / a[1];
: : : : break;
: : : : }
: : : :
: : : : scanf("%c", &c);
: : : :
: : : : switch ( c )
: : : : {
: : : : case '=':
: : : : printf("%f", a[2]);
: : : : case '+':
: : : : scanf("%f", &a[3]);
: : : : a[4] = a[2] + a[3];
: : : : break;
: : : : case '-':
: : : : scanf("%f", &a[3]);
: : : : a[4] = a[2] - a[3];
: : : : break;
: : : : case '*':
: : : : scanf("%f", &a[3]);
: : : : a[4] = a[2] * a[3];
: : : : break;
: : : : case '/':
: : : : scanf("%f", &a[3]);
: : : : a[4] = a[2] / a[3];
: : : : break;
: : : : }
: : : :
: : : : scanf("%c", &d);
: : : :
: : : : switch ( d )
: : : : {
: : : : case '=':
: : : : printf("%f", a[4]);
: : : : case '+':
: : : : scanf("%f", &a[5]);
: : : : a[6] = a[4] + a[5];
: : : : break;
: : : : case '-':
: : : : scanf("%f", &a[5]);
: : : : a[6] = a[4] - a[5];
: : : : break;
: : : : case '*':
: : : : scanf("%f", &a[5]);
: : : : a[6] = a[4] * a[5];
: : : : break;
: : : : case '/':
: : : : scanf("%f", &a[5]);
: : : : a[6] = a[4] / a[5];
: : : : break;
: : : : }
: : : :
: : : : scanf("%c", &e);
: : : :
: : : : switch ( e )
: : : : {
: : : : case '=':
: : : : printf("%f", a[6]);
: : : : case '+':
: : : : scanf("%f", &a[7]);
: : : : a[8] = a[6] + a[7];
: : : : break;
: : : : case '-':
: : : : scanf("%f", &a[7]);
: : : : a[8] = a[6] - a[7];
: : : : break;
: : : : case '*':
: : : : scanf("%f", &a[7]);
: : : : a[8] = a[6] * a[7];
: : : : break;
: : : : case '/':
: : : : scanf("%f", &a[7]);
: : : : a[8] = a[6] / a[7];
: : : : break;
: : : : }
: : : :
: : : : scanf("%c", &f);
: : : :
: : : : switch ( f )
: : : : {
: : : : case '=':
: : : : printf("%f", a[8]);
: : : : case '+':
: : : : scanf("%f", &a[9]);
: : : : a[10] = a[8] + a[9];
: : : : break;
: : : : case '-':
: : : : scanf("%f", &a[9]);
: : : : a[10] = a[8] - a[9];
: : : : break;
: : : : case '*':
: : : : scanf("%f", &a[9]);
: : : : a[10] = a[8] * a[9];
: : : : break;
: : : : case '/':
: : : : scanf("%f", &a[9]);
: : : : a[10] = a[8] / a[9];
: : : : break;
: : : : }
: : : :
: : : : scanf("%c", &g);
: : : :
: : : : switch ( g )
: : : : {
: : : : case '=':
: : : : printf("%f", a[10]);
: : : : return 0;
: : : : case '+':
: : : : scanf("%f", &a[11]);
: : : : a[12] = a[10] + a[11];
: : : : break;
: : : : case '-':
: : : : scanf("%f", &a[11]);
: : : : a[12] = a[10] - a[11];
: : : : break;
: : : : case '*':
: : : : scanf("%f", &a[11]);
: : : : a[12] = a[10] * a[11];
: : : : break;
: : : : case '/':
: : : : scanf("%f", &a[11]);
: : : : a[12] = a[10] / a[11];
: : : : break;
: : : : }
: : : :
: : : : printf("%f\n", a[12]);
: : : :
: : : : return 0;
: : : :
: : : : }