Арканоид Деревянной Козы
GameDev.ru / Страницы / Проект Арканоид Деревянной Козы [Форум / Инфо]

Проект Арканоид Деревянной Козы

#include <iostream.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <fcntl.h>
#include <time.h>
/*Функция возвратит номер месяца по его имени :)*/
long get_month(const char*month_str);
/*Функция возвратит номер дня недели по его имени :)*/
long get_weekday(const char* weekday_str);
int main(int argc,char**argv)
{
    /*представим день недели, число,месяц,год,час,минуты, секунды словами*/
    char weekday_str[4];
    char month_str[4];
    char day_str[3];
    char year_str[5];
    char hours_str[3];
    char minutes_str[3];
    char seconds_str[3];
    /*А так же числами*/
    int weekday;
    int month;
    int day;
    int year;
    int hours;
    int minutes;
    int seconds;
    char* date=NULL;
    char* path=argv[0];//Ну тут достанешь путь из своей MFC :)
    struct _stat    buf;
    /* Get data associated with this file, check if statistics are valid: */
    if(_stat(path, &buf) != 0)
    {
  cout << "Problem getting information" << endl;
  return -1;
    }
    date=ctime(&(buf.st_mtime));
    /*date теперь: Thu Oct 14 23:16:36 2004*/
    cout<<path<<" "<<date<<endl;
    /*
Здесь коплилятор заменит для нас __DATE__ на строку с датой
например сегодня: Oct 14 2004
*/
    /*Вот так будет выглядеть дата, подаренная компилятором*/
    printf("Date of birth as string:\t %s\n",date);
    memcpy(weekday_str,date,3);
    weekday_str[3]=0;
    date+=4;
    /*разобьём строку на день, месяц,год*/
    memcpy(month_str,date,3);
    month_str[3]=0;
    date+=4;
    memcpy(day_str,date,2);
    day_str[2]=0;
    date+=3;
    memcpy(hours_str,date,2);
    hours_str[2]=0;
    date+=3;
    memcpy(minutes_str,date,2);
    minutes_str[2]=0;
    date+=3;
    memcpy(seconds_str,date,2);
    seconds_str[2]=0;
    date+=3;
    memcpy(year_str,date,4);
    year_str[4]=0;
    
    /*Эта распечатка уже гибче*/
    printf("Date of birth as our string:\t\t %s:%s:%s %s %s.%s.%s\n",hours_str,minutes_str,seconds_str,minutes_str,weekday_str,day_str,month_str,year_str);
    
    /*Ну и сделаем числа для удобного пользования*/
    weekday=get_weekday(weekday_str)+1;//дни будут начинатся с 0, поетому добавлю 1 :)
    month=get_month(month_str);
    day=atol(day_str);
    year=atol(year_str);
    hours=atol(hours_str);
    minutes=atol(minutes_str);
    seconds=atol(seconds_str);
    /*А так совсем удобно :)*/
    printf("Date of birth as numbers:\t\t %i:%i:%i weekday %i %i.%i.%i\n",hours,minutes,seconds,weekday,day,month,year);
//А вот тут надо удалить указатель :)
delete date;
return 0;
}
/*Функция возвратит номер дня недели по его имени :)*/
long get_weekday(const char* weekday_str)
{
 static char* wday_name[] = 
 { 
  "Mon", 
  "Tue", 
  "Wed", 
  "Thu", 
  "Fri", 
  "Sat",
  "Sun"
    };
 int wday;
    /*Смотрим, какой же наш день по счёту*/
    for(wday=0; wday<12; wday++)
    {
  if(strcmp(weekday_str, wday_name[wday])==0)
  {
    return wday;
  
  }
    }
    return 99;
}
/*Функция возвратит номер месяца по его имени :)*/
long get_month(const char* month_str)
{
    int month; 
    /*Тут в month_array соотношения, имена - число*/
    const char * const month_array[]=
  {
    "Jan",
    "Feb",
    "Mar",
    "Apr",
    "May",
    "Jun",
    "Jul",
    "Aug",
    "Sep",
    "Oct",
    "Nov",
    "Dec"
  };
    /*Смотрим, какой же наш месяц по счёту*/
    for(month=0; month<12; month++)
    {
  if(strcmp(month_str, month_array[month])==0)
  {
    return month;
  
  }
    }
    /*до этого места функция не дойдёт, но надо же компилятор успокоить :)
А вдруг кто нибудь передаст в неё не название месяца, а ерунду какую нибудь :)?*/
    return 99;
}

Ссылка
12 ноя. 2016

///main.cpp--------------------------------------------------------------------|
#include "base.h"

int main ()
{   cBase Base;
    Base.fooBase();

    std::cout << "\nEnd!";
    system("pause");
}

///base.h----------------------------------------------------------------------|
#pragma once
#include <iostream>

#include "boom.h"

class cBase
{
public:
    cBoom Boom;
    float val;

    cBase() : val(777.7f)
    {   Boom.pbase = this;
        std::cout << "cBase()\n";
    }

    void fooBase()
    {   Boom.fooBoom();
    }
};

///boom.h----------------------------------------------------------------------|
#pragma once
#include <iostream>

class cBase;
class cBoom
{
public:
    cBase* pbase;

    cBoom()
    {   std::cout << "cBoom()\n";
    }

    void fooBoom();
};

///boom.cpp--------------------------------------------------------------------|
#include "boom.h"
#include "base.h"

void cBoom::fooBoom()
{   /*Тут нуно использовать данные из cBase*/
    std::cout << "\nvoid cBoom::fooBoom()---------------------------:\n";
    std::cout << "pbase->val = " << pbase->val << "\n";
}

Ссылка
25 сен. 2014

2001—2018 © GameDev.ru — Разработка игр