#define _CRT_NO_SECURE_WARNINGS
#include <stdio.h>
#include <stdlib.h>
char get_choice(void);
char get_first_char(void);
int get_integer(void);
void count(void);
int main()
{
int user_choice; // 메뉴에서 선택 할 값
while ((user_choice = get_choice()) != 'q') // q가 아닐때 돌아가게 하도록 만듦
{
switch (user_choice) // switch문을 사용하여 4가지 케이스를 만듦
{
case 'a': // a를 입력했을때
printf("Avengers assemble!\n");//Avengers asssemble을 출력
break;
case 'b':// b를 입력했을때
putchar('\007');// 비프 실행
break;
case 'c':// c를 입력했을때
count();// count 기능 실행
break;
default :
printf("Error with %d.\n", user_choice);
exit(1);
break;
}
}
return 0;
}
void count(void)// count('c')를 입력했을때 실행함
{
int n, i;
printf("Enter an integer:\n");//정수를 입력하라고 출력
n = get_integer();//n에 정수를 입력받음
for (i = 1; i <= n; ++i)//입력한 n의 개수 만큼 1부터 실행
printf("%d\n", i);//1부터 출력
while (getchar() != '\n')// 버퍼 지우기?
continue;
}
char get_choice(void)// 메뉴
{
int user_input;// 입력받을 옵션
printf("Enter letter of your choice:\n");//메뉴
printf("a. avengers\tb. beep\n");//메뉴 \ㅅ
printf("c. count\tq. quit\n");//메뉴
user_input = get_first_char();//입력받은 값을 user_input에 할당
while (user_input != 'a' && user_input != 'b' && user_input != 'c' && user_input != 'q')
{ // 입력받은 값이 a b c q 가 아닐때
printf("Please try again.\n");// 다시 시도하라고 알림
user_input = get_first_char();// 다시 값을 입력받게 만듦
}
return user_input;
}
char get_first_char(void)//입력값 중 첫 글자만 입력을 받게 만드는 기능
{
int ch;
ch = getchar();
while (getchar() != '\n')
continue;
return ch;
}
int get_integer(void)// 'c'옵션 안에서 유효한 값인지 검증하는 기능 추가
{
int input;
char c;// 입력값이 정수가 아닌 문자일때 값이 저장되는 c
while (scanf("%d", &input) != 1)//입력값이 거짓일때(정수가 아닐때?)
{
while ((c = getchar()) != '\n')//엔터를 치기 전까지 정수를 c에 저장
putchar(c);//입력한 값을 출력한 뒤
printf(" is not an integer.\nplease try again.");//~는 정수가 아니니 다시 시도하라고 출력
}
return input;
}
씨발코린이라 헷갈려요 제가 쓴거 대충 맞나요 ?
개발한 니가 우리한테 알려주기 위한게 주석인데 니가 물어보면 어태 하냐
생각해보니 그렇네요 씨발