본문 바로가기

Stupid Computer/2. C 언어

[C/C++] 유효한 날짜 검사 하는 함수 ! 날짜가 유요한지 검사 ! validiation date ! test date ! 안녕하세요, kimgaga 블로그 주인장입니다. 이번 블로그 글은 입력한 날짜가 달력상으로 유효한 날짜인지 검사하는 코드 입니다. 코딩 처음하시는 분들을 위한 좋은 예제가 될것 같네요 ㅎㅎ 윤년 검사 및 30일 이상, 0일 이하 등등 값 check 모두 했습니다. Input 날짜 입력할때의 값만 숫자로 입력하면 잘동작할것 같네요 ~ 코드는 아래 있습니다 ! To verify the date Code #include int checkDate(int year, int month, int day) ; // month 1 2 3 4 5 6 7 8 9 10 11 12 // day 31 28 31 30 31 30 31 31 30 31 30 31 int main(int argc, char *argv[]) { int .. 더보기
[C/C++] 날짜를 입력받고 timeStamp로 바꾸는 함수 !! ( date to TimeStamp in C/ C++) 안녕하세요, kimgaga 블로그 주인장입니다. 이번 블로그글은 C/C++ 에서 timeStamp 를 날짜로 바꾸는 것은 이전 포스팅에서 해봤습니다 !! http://kimgaga.tistory.com/453 이번에는 그 반대로인, 날짜를 입력받고 ( 년, 월, 일, 시간, 분, 초) 그 시간을 컴퓨터가 알아보는 timeStamp값으로 바꾸는 코드를 보겠습니다 !! mktime 이라는 함수를 사용하면 되는데요 !! ( time.h 헤더 ) 아래 코드에서 확인하세요 ~~ *******************This writing is an example to transfer from date to timeStamp in C/C++I write very easy so you can understand easi.. 더보기
[C/C++] TimeStamp to DateTime 시간을 초단위로 변환하여 출력 (convert timeStamp to DateTime String ) 안녕하세요 kimgaga 블로그 주인장입니다. 이번 블로그 글은 C/C++관련하여 현재 시스템의 시간을 얻어와 timeStamp값 (컴퓨터가 알아먹는 시간값 : 1970년 1월 1일 00:00:00시 이후의 sec값) 을 출력하고,그걸 다시 저희가 볼 수 있는 시간 단위로 변환하는 코드 예제 입니다. 아래는 현재 시간을 가져와서 년도/월/일/시간/분/초/요일/1월1일부터 경과시간을 출력하는 예제입니다. #include #include int main(int argc, char *argv[]) { time_t time_now ; struct tm *tm ; time(&time_now) ; tm= localtime(&time_now) ; printf(ctime(&time_now)) ; printf(" yea.. 더보기
[C/C++] 현재 시간을 가져와서 timeStamp(초 단위) 출력, 우리가 쓰는 시간으로 출력 안녕하세요, kimgaga 블로그 주인장입니다. 이번 블로그 글은 현재 시간을 가져와서 그 timeStamp값 ( 1970년 1월 1일 00:00:00 을 기준으로 경과한 초(sec) )을 출력합니다. #include #include #include #include #include using namespace std; int GetTimeT(int year, int month, int day, int hour, int minute, int second); int main(int argc, char** argv) { //day input int year, month, day ; int date = -1 ; coutdate ; year = date / 10000 ; month = ( date - year*1.. 더보기
[C/C++] 난수 생성하기 rand(), srand()함수 사용! 랜덤 숫자 생성하기 ! C++에는 라는 헤더파일에 rand라는 난수 생성 함수가 있어요~rand()함수를 호출하면 0에서 RAND_MAX(32767) 까지의 정수 1개를 리턴해요. 위 결과를 보면 rand함수를 5번 실행한 경우와 10번 실행한 경우에 1~5번째 값이 같아요~또 실행할때마다 계속해서 위와 같은 결과가 나오게 되구요~ rand함수는 시드(seed)라는 값에의해 생성되므로 시드값을 설정을 해주지 않아 같은 시드값으로 실행이되어 위와같은 현상이 나타나요.이를 해결하기 위해서 srand함수를 이용하여 시드값을 설정해주면 잘 해결되요~ srand로 시드값을 10으로 설정해준 결과와 5를 설정해준 결과가 다르게 나타나요.하지만 같은 시드값으로 재실행을 하면 같은 결과가 나와요. 저희가 실행할때마다 시드값을 직접 지정을 할.. 더보기
[C/C++] Class 사용, 은행 계좌 개설 및 입금, 출금 예제 ! (코드 첨부 ) 안녕하세요, kimgaga 블로그 주인장입니다. 이번 블로그 글은 별게 아니라, 그냥 C/C++ 기초 공부 하면서 짧게 짜본 코드입니다. 은행 계좌 관련된 코드인데, 계좌 생성하고 입금, 출금기능도 있구요, 계좌에 있는 모든정보 보기 기능도 있습니다. 매우 허접하고, 어디가서 보여줄만한 코드도 아니고, 대학과제 수준도 안될것 같지만, Class 활용법이랑, get, set 함수들 활용 할 수 있는 예제라고 생각 합니다. 생성자, 소멸자 개념도 person(), ~person() 공부 할 수 있다고 생각하구요. 아래 코드 정도 짤 수 있다고 하면, 코딩에 자신감 가져도 되겟죠 ? ㅋㅋㅋㅋㅋㅋㅋ C++로 짯고, 따로 주석은 달지 않았습니다. 모두 알아 보실 수 있으리라 생각합니다. 그냥 참고로 말씀 드리자면.. 더보기
[C/C++] Enum 사용법 , C언어 열거형 사용법 열거형(Enum) 쉽게 말해 enum 은 열거형 변수 입니다."어떻게" 생각하면 struct와 다르냐? 라고 물을 수 있지만."전혀" 다릅니다. 보통 enum은 상수를 정의하는데에 많이 쓰입니다.소스의 가독성을 높인다거나 상수에 의미를 부여해서 쓸 수 있습니다. 전처리기인 #define 을 사용하거나, 전역 변수를 const로 선언해서 상수처럼 사용이 가능하지만enum을 상수로 생각해서 처리할때의 이점이 있습니다. (뒷부분에 설명하겠습니다.) 우선 이넘(enum)을 선언하는 방법은 다음과 같습니다. enum {mon, tue, wed, thr, fri, sat, sun } day; 여기서 day를 열거형 변수라 하고 그 하위의 항목(원소) 들 ( mon, tue, wed, thr, fri, sat, sun)로 구성됩니다... 더보기
[C/C++] #ifdef 사용법 ! ifdef, endif 사용법 !! 모드 전환 ! 개발을 하다가, A모드와 B모드로 구분을 하고 싶을 때가 있습니다. 예를 들어, 웹 상에서만 개발 할 때, 디바이스에 올려서 테스트 할 때 라던지, input을 5로 넣을때, 10으로 넣을때 뭐 이런식의 차이가 있을 때 있습니다. 물론 이때 기본적인 코드들은 전혀 건드리지 않고, 모드가 달라도 같은 구조를 띄고 있을때 사용하는 게 #ifdef 입니다. #ifdef의 사용법은 일반적인 if문과 동일하다고 생각하시면 됩니다. C에서의 if문의 경우 if ~else~형식으로 쓰는데 #ifdef도 마찬가지입니다. #ifdef은 #ifdef identifier~~#else /* 필요할 경우 */ ~~#endif 형식으로 됩니다. identifier는 #define으로 정의된것을 사용하고, 정의 되지 않았으면 당연.. 더보기
[C/C++] Menu 화면 구성 ! if else if ~ ( 메뉴 10개 이상 넘어갈때 ) 코딩을 하다가 메뉴 화면을 선택하도록 유도를 할 때 GUI를 통한 터치 이벤트를 구현한게 아니라면 결국 int형으로 문자열입력받아 메뉴 선택하도록 할거다. switch(menu){ case 1 : ~~~ case 2 } 아마 이런식으로 짜겟지 ? ? 하지만 문제는 menu가 10개가 넘어가는 경우라던지, input으로 숫자만 받아와야 하는데 문자를 입력했을때다. 우선 숫자대신 문자를 입력하면, 우리의 바램은 에러처리를 해주길 원하지만, int형 인식을 못해서 결국 마구 돈다. 마구마구 돈다. (while문일경우 ) 이래서 char형으로 선언하고 값을 비교하면 되겟지만, char형은 1자리의 숫자만 비교 가능하다. 결국 14는 1 + 4로 구분하여 메뉴1과 메뉴4를 동시에 호출 한달까? 그래서 찾아낸 방법.. 더보기
[C/C++] switch case문 10개 이상 만들기 ! 만약 switch( input ) 할떄 input 을 int로 선언하여 숫자로 입력을 받으면 10개고 100개고 ... int 가 허용하는 범위까지는 모두 메뉴로 만들수 있을거다. 이런경우에는 정말 간편하겟지 ! 하지만 이런 메뉴에서 문자를 입력하면 무한루프를 돈다.. 따라서 이런 메뉴가 아닌 것들에 대한 예외처리를 해줘야하는 프로그램에서는 char input ; 이렇게 선언하여 메뉴를 만들려고 할텐데, 이런경우 char 는 1바이트라 1번 메뉴와 10번, 11번 메뉴는 모두 1로 인식한다. 10번이후에 경우 1+ 0 으로 인식하여 1번메뉴 선택한후, 0을 다시 입력하는 식으로 처리가 된다. ( 맞을걸 ? ) 이번에 프로젝트 진행중 하위 메뉴 22개이상을 만들어야 했었는데 ... 결국 하위메뉴로 들여보낸.. 더보기