음식 주문에는 물고기, 칩, 음료의 세 가지 유형이 있습니다. 사용자는 그들이 주문 원하는 것을 다음과 같이 질문에 대한 템플릿이 때문이다하라는 메시지가 표시됩니다 :조건에 따라 C 문자열의 데이터를 선언하고 변경 하시겠습니까?
Do you order ___ (Y/N)? -
___ choice (food options):
What size (L-Large, M-Medium, S-Small):
How many orders do you want? (>=0):
You ordered ___ SIZE: order number: subtital: $x.xx
은 그래서 사용자의 입력을 기반으로, 그것은 생선, 칩, 또는 음료가 될 것입니다. 그들이 비록 처음 낚시를하려는 경우 프로그램 FIRST는 묻는다, 그래서 (및 작동)이했던 방법은 다음과 같다 :
main() {
question("fish");
}
질문 기능 (어떤 메신저에 문제가 가짐) :
void question (char choice[]) {
char choiceYesNo;
char foodChoice[];
char foodOptions[];
switch (choice[0]) {
case 'f':
foodChoice[] = "fish";
foodOptions[] = "(K - Haddock, T - Halibut)";
break;
case 'c':
// options for chips
printf("Do you order CHIPS? (Y/N): \n");
break;
case 'd':
// options for drinks
printf("Do you order DRINK? (Y/N): \n");
break;
}
printf("Do you order %c? (Y/N): \n", toupper(foodChoice));
scanf("%c", choiceYesNo);
printf("%c choice %c: \n", foodChoice, foodOptions);
scanf("%c", foodSelect);
printf("What size (L - Large, M - Medium, S - Small): \n");
scanf("%c", foodSize);
printf("How many orders do you want? (>=0): \n");
scanf("%c", foodOrders);
printf("You ordered %c: %c - SIZE: %c amount ordered: %d, subtotal price: %.2lf\n", toupper(foodChoice), foodSize, foodOrders, foodSubtotal);
}
을 내 질문 기능에서 작동하는 부분은 스위치가 f, c 또는 d를 선택하는 부분입니다. 내가 이해하지 못하는 것은 그것이 f를 고를 때 푸드 선택을 "물고기"로, foodOptions을 그 음식을 기반으로하는 올바른 옵션으로 설정해야합니다. 그렇게 거대한 printf를 사용하지 않고 수동으로 스위치를 사용하면 시간과 노력을 절약하고 변수를 사용하여 입력 할 수 있지만 작동하지는 않습니다. P 그러면 나중에 사용자 입력을 처리 할 포인터를 사용해야합니다.
감사합니다.
"문자열"에는 % s을 사용하고 char에는 % c 만 사용하는 것을 잊지 마십시오. –
@ToddMurray 감사합니다! – eveo