c언어 주문받는 프로그램

ayu0525의 이미지

음료를 주문하세요 초코라떼(C), 바나나라떼(B) 딸기라떼(S):C

몇 개를 주문하시겠습니까?: 2

다른 음료를 주문하시겠습니까? (Y/N): Y

음료를 주문하세요 초코라떼(C), 바나나라떼(B) 딸기라떼(S):B

몇 개를 주문하시겠습니까?: 6

다른 음료를 주문하시겠습니까? (Y/N): Y

음료를 주문하세요 초코라떼(C), 바나나라떼(B) 딸기라떼(S):S

몇 개를 주문하시겠습니까?: 4

다른 음료를 주문하시겠습니까? (Y/N): N

멤버쉽 회원이신가요? (Y/N): Y

이렇게 음료를 주문하시겠습니까? 에서 N을 입력할때 까지 반복하고

음료들 가격 총 합도 구하도록 해야하는데

어떻게 해야할지 모르겠습니다..

shint의 이미지

일단. 구조도를 스크래치 프로그램으로 만들어봤습니다.
https://scratch.mit.edu/projects/221141993/#editor

함수에 인자값. 리턴값. 오류값을 C 프로그램 책이나 설명서. 등에서 확인해보시기 바랍니다.

getch 구글 검색
https://www.google.com/search?source=hp&ei=dFzwWtOaO8bJ0gSP-pCoCA&q=getch&oq=getch&gs_l=psy-ab.3..0l10.780.3405.0.3563.12.10.1.0.0.0.161.1031.0j8.9.0....0...1c.1j4.64.psy-ab..2.9.1049.0..0i131k1j0i3k1.100.x3Na2Uea2pg

#include <stdio.h>
 
int main()
{
 
int max = 0;
while(1)
{
    int r;
    char drink;
    int count;
    char isDrink;
    char drinkSel;
 
    printf("음료를 주문하세요 초코라떼(C), 바나나라떼(B) 딸기라떼(S):C\n");
    //r = getch();
    r = (int)'C';
    drink = (char)r;
    if(drink == 'C' || drink == 'B' || drink == 'S')
    {
    }
    else
    {
        continue;
    }
 
    printf("몇 개를 주문하시겠습니까?: \n");
    //r = getch();
    count = 10;
 
    printf("다른 음료를 주문하시겠습니까? (Y/N): \n");
    //r = getch();
    r = (int)'Y';
    drinkSel = (char)r;
 
    if(drinkSel == 'Y')
    {
    }
    else if(drinkSel == 'N')
    {
        printf("멤버쉽 회원이신가요? (Y/N): \n");
        break;
    }
    else
    {
        continue;
    }
 
if(max > 3)
{
    break;
}
max ++;
 
}
 
    return 0;
}

//출력 결과
음료를 주문하세요 초코라떼(C), 바나나라떼(B) 딸기라떼(S):C
몇 개를 주문하시겠습니까?:
다른 음료를 주문하시겠습니까? (Y/N):
음료를 주문하세요 초코라떼(C), 바나나라떼(B) 딸기라떼(S):C
몇 개를 주문하시겠습니까?:
다른 음료를 주문하시겠습니까? (Y/N):
음료를 주문하세요 초코라떼(C), 바나나라떼(B) 딸기라떼(S):C
몇 개를 주문하시겠습니까?:
다른 음료를 주문하시겠습니까? (Y/N):
음료를 주문하세요 초코라떼(C), 바나나라떼(B) 딸기라떼(S):C
몇 개를 주문하시겠습니까?:
다른 음료를 주문하시겠습니까? (Y/N):
음료를 주문하세요 초코라떼(C), 바나나라떼(B) 딸기라떼(S):C
몇 개를 주문하시겠습니까?:
다른 음료를 주문하시겠습니까? (Y/N):

//
구름 IDE 로 웹에서 테스트 가능
http://ide.goorm.io

웹 상에서 리눅스 getch()가 되네요. ㅇ_ㅇ;;

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
//#include "conio.h"
//#include <conio.h>
 
#include <termios.h>
#include <unistd.h>
 
 
 
 
 
 static struct termios old, newp; 
 
 
 /* Initialize new terminal i/o settings */ 
 void initTermios(int echo)  
 { 
   tcgetattr(0, &old); /* grab old terminal i/o settings */ 
   newp = old; /* make new settings same as old settings */ 
   newp.c_lflag &= ~ICANON; /* disable buffered i/o */ 
   newp.c_lflag &= echo ? ECHO : ~ECHO; /* set echo mode */ 
   tcsetattr(0, TCSANOW, &newp); /* use these new terminal i/o settings now */ 
 } 
 
 
 /* Restore old terminal i/o settings */ 
 void resetTermios(void)  
 { 
   tcsetattr(0, TCSANOW, &old); 
 } 
 
 
 /* Read 1 character - echo defines echo mode */ 
 char getch_(int echo)  
 { 
   char ch; 
   initTermios(echo); 
   ch = getchar(); 
   resetTermios(); 
   return ch; 
 } 
 
 
 /* Read 1 character without echo */ 
 char getch(void)  
 { 
   return getch_(0); 
 } 
 
 
 /* Read 1 character with echo */ 
 char getche(void)  
 { 
   return getch_(1); 
 } 
 
 
 
 
 
using namespace std;
 
int main(int argc, char* argv[])
{
 
	int max = 0;
while(1)
{
    int r;
    char drink;
    int count;
    char isDrink;
    char drinkSel;
 
    printf("음료를 주문하세요 초코라떼(C), 바나나라떼(B) 딸기라떼(S):C\n");
    r = getch();
    //r = (int)'C';
	cout << (char)r << " " << r << endl;
    drink = (char)r;
    if(drink == 'C' || drink == 'B' || drink == 'S')
    {
    }
    else
    {
        continue;
    }
 
    printf("몇 개를 주문하시겠습니까?: \n");
    r = getch();
    count = r;
 
    printf("다른 음료를 주문하시겠습니까? (Y/N): \n");
    r = getch();
    //r = (int)'Y';
    drinkSel = (char)r;
 
    if(drinkSel == 'Y')
    {
    }
    else if(drinkSel == 'N')
    {
        printf("멤버쉽 회원이신가요? (Y/N): \n");
        break;
    }
    else
    {
        continue;
    }
 
if(max > 3)
{
    break;
}
max ++;
 
}
 
    return 0;
}

#include conio.h not found

//
Linux c++ implementation of conio.h
https://sourceforge.net/projects/linux-conioh/files/latest/download

wget https://jaist.dl.sourceforge.net/project/linux-conioh/linux-conioh/v1.01beta/conio.h.bz2

//
tar.bz2 압축풀기 명령어, tar.bz2 압축하기 방법; bzip2
http://mwultong.blogspot.com/2007/07/tarbz2-tarbz2-bzip2.html

tar -xvf conio.h.bz2

//
bz2 압축풀기, bzip2 압축하기; 리눅스 파일 압축
http://mwultong.blogspot.com/2007/08/bz2-bzip2.html
bzip2 -kd conio.h.bz2

//
Why can't I find on Linux? [duplicate]
https://stackoverflow.com/questions/8792317/why-cant-i-find-conio-h-on-linux
sudo apt-get install libncurses5-dev libncursesw5-dev
sudo yum install ncurses-devel ncurses

//
conio.h file missing error [closed]
https://unix.stackexchange.com/questions/126842/conio-h-file-missing-error
sudo apt-get install elks-libc

//
tcgetattr(3) - Linux man page
https://linux.die.net/man/3/tcgetattr

#include <termios.h>
#include <unistd.h>

//여기 소스를 넣어서 해결
CPP: getch() on linux
https://gist.github.com/ionutvmi/5708845

How to handle keypress events in a Qt console application?
https://stackoverflow.com/questions/7543313/how-to-handle-keypress-events-in-a-qt-console-application/18889631

Capture characters from standard input without waiting for enter to be pressed
https://stackoverflow.com/questions/421860/capture-characters-from-standard-input-without-waiting-for-enter-to-be-pressed/912796#912796

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

세벌의 이미지

한 번에 너무 여러가지 하려고 하면 어렵습니다. 한번에 하나씩 해 보세요.

음료를 주문하세요 초코라떼(C), 바나나라떼(B) 딸기라떼(S):C

일단 여기까지 C 언어로 프로그램 만들어서 소스코드 보여주셔요. 에러가 나면 에러 메시지도 보여 주셔요.

질문할 때 아래 글이 도움될 겁니다.
https://wiki.kldp.org/wiki.php/DocbookSgml/Beginner_QA-KLDP#AEN70

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.