DBILITY

C console program example 본문

C

C console program example

DBILITY 2019. 6. 5. 11:14
반응형

딸아이를 위해 작성해 봤다.

간만에 하니 어렵기도 하다.

생각해 보니 내가 책을 처음 샀을때 표준이 C90이었나 보다...연식나오네...

VS에서 디버그 실행시 콘솔창이 닫히지 않게 하려면 아래와 같이 설정한다.

 

#include <stdio.h>
#include <stdlib.h>

//function prototype
//main function 이후에 function을 정의하려면 main이전에 fucntion prototype(원형)을 선언해 주어야 한다.
//호출스택(call stack)과 관련이 되어 있는 것으로 처음엔 그렇다고만 이해하길 바란다.
//아래 printUI()의 경우 prototype을 선언하지 않아도 오류가 발생하지 않는다.
//이는 compiler가 int형으로 처리해 주는 기능이 있다.
//빌드시 다음과 같은 경고가 출력된다. 'printUI'이(가) 정의되지 않았습니다. extern은 int형을 반환하는 것으로 간주합니다.
//compiler가 1 pass방식의 소스코드 리딩 후 기계어로 번역하기 때문에 오류가 발생한다.
void addBook();
void searchBook();
void printAll();
void removeBook();

void main() {

	int nMenu = 0;

	while ((nMenu = printUI()) != 0) { // Event Loop
		
		switch (nMenu)
		{
		case 1: 
			addBook(); 
			break;
		case 2: 
			searchBook(); 
			break;
		case 3:
			printAll(); 
			break;
		case 4: 
			removeBook(); 
			break;

		default:
			break;
		}
		_sleep(1000L);// function이 호출된 것을 확인하기 위해 임시로 설정한 것.
	}


	printf_s("Terminated!");// print와 같은 기능이나 security가 강화된 function, scanf_s도 있음.
}


int printUI() {

	int nInput = 0;

	system("cls");
	printf("[1] Add\t[2] Search\t[3] PrintAll\t[4] Remove\t[0] Exit\n");

	scanf("%d", &nInput);
	return nInput;

}

void addBook() {
	printf("addBook function call\n");
}

void searchBook() {
	printf("searchBook function call\n");
}

void printAll() {
	printf("printAll function call\n");
}

void removeBook() {
	printf("removeBook function call\n");
}

 

반응형

'C' 카테고리의 다른 글

C 초기화의 중요성?  (0) 2019.06.14
GetKeyState  (0) 2019.01.04
WIN32 윈도우 생성 및 메시지처리 이해  (0) 2019.01.04
CMainFrame 가운데 정렬  (0) 2019.01.02
주요 Message  (0) 2018.02.13
Comments