== 소스 == === myCmdBase === {{{ // myCmdBase.cpp : 콘솔 응용 프로그램에 대한 진입점을 정의합니다. // #include "stdafx.h" #include using namespace std; #include #include "cmdTest.h" #include "rei.h" typedef char (*ARGV)[ARG_SIZE]; typedef int (*PF)(int, ARGV); struct Cmds{ char cmdName[256]; PF cmd; } cmds[] = {{"rei", rei}}; int parseCommand(char* str, ARGV argv); PF getCommander(ARGV argv); int _tmain(int argc, _TCHAR* argv[]) { char input[256]; char inputArgv[ARG_NUM][ARG_SIZE] = {0,}; cout<<"input your command : "; cin>>input; // 사용자 입력을 띄어쓰기 단위로 나누고 몇개로 int inputArgc = parseCommand(input, inputArgv); // 커맨드를 비교하여 적절한 커맨드 함수를 받는다. PF pf = getCommander(inputArgv); // 커맨드 함수 호출 pf(inputArgc, inputArgv); return 0; } // 문자열을 띄어쓰기 단위로 나눈다. int parseCommand(char* str, ARGV argv){ if( strlen(str) <= 0 ) return 0; // no command char* ptr = strtok( str, " "); strcpy( argv[0], ptr); int i; for( i=1; ptr = strtok( NULL, " "); i++) strcpy(argv[i], ptr); return i; } // 가장 앞 문자열을 이용하여 일치하는 커맨드를 가져온다. PF getCommander(ARGV argv){ for( int i=0; i int rei(int argc, char (*argv)[ARG_SIZE]){ ifstream f("rei.txt"); if(!f) { cout << "Fail to Load File" << endl; exit(0); } char ch; while(!f.eof()){ f.get(ch); cout << ch; } return 0; } }}}