Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[Allegro] problem z time.h

Ostatnio zmodyfikowano 2008-09-17 18:10
Autor Wiadomość
Patzick
Temat założony przez niniejszego użytkownika
[Allegro] problem z time.h
» 2008-09-16 19:28:33
próbowałem w allegro wyświetlić aktualną datę, poszperałem trochę i wyszło coś takiego

C/C++
#include <allegro.h>
#include <time.h>

//troche zmiennych

time_t * currTime;
struct tm * t;

currTime * = time( NULL ); //tu coś nie tak
t = localtime( & currTime );
potem użyłem do wyświetlenia

C/C++
textprintf_ex( bufor, font, 250, 20, makecol( 255, 255, 255 ), - 1, "Dzis jest %d dzien miesiaca", tm->tm_mday );

okazało się, że coś nie tak z tą linijką którą zaznaczyłem, oraz z wyświetleniem.
Załączam log kompilacji, i dzięki za sugestie :)

Kompilator: Default compiler
Building Makefile: "C:\Documents and Settings\Patzick\Pulpit\Ściągane\C++\Prog Wroc\gra\gra\Makefile.win"
Wykonywanie  make...
make.exe -f "C:\Documents and Settings\Patzick\Pulpit\Ściągane\C++\Prog Wroc\gra\gra\Makefile.win" all
g++.exe -c main.cpp -o main.o -I"C:/Dev-Cpp/lib/gcc/mingw32/3.4.2/include"  -I"C:/Dev-Cpp/include/c++/3.4.2/backward"  -I"C:/Dev-Cpp/include/c++/3.4.2/mingw32"  -I"C:/Dev-Cpp/include/c++/3.4.2"  -I"C:/Dev-Cpp/include"  -DALLEGRO_STATICLINK 

main.cpp:23: error: expected constructor, destructor, or type conversion before '=' token
main.cpp:23: error: expected `,' or `;' before '=' token
main.cpp:24: error: expected constructor, destructor, or type conversion before '=' token

main.cpp:24: error: expected `,' or `;' before '=' token

main.cpp: In function `void ObslugaMenu()':
main.cpp:305: error: expected primary-expression before '->' token

make.exe: *** [main.o] Error 1

Wykonanie zakończone
P-1601
DejaVu
» 2008-09-16 19:53:40
Linijka powinna wyglądać tak:
C/C++
time_t currTime;
currTime = time( NULL );
P-1602
Patzick
Temat założony przez niniejszego użytkownika
» 2008-09-16 20:37:24
Nie wiem czy dobrze zrozumiałem- wystarczy zamienić miejscami currTime = time(NULL); z struct tm* t; ? Zrobiłem tak, lecz dalej to samo. W kompilatorze dalej jest
expected constructor, destructor, or type conversion before '=' token

w linijce

currTime = time(NULL);
P-1603
DejaVu
» 2008-09-16 21:09:08
Dostajesz tą samą odpowiedź po raz drugi...
C/C++
#include <time.h>
int main()
{
    time_t currTime = time( NULL );
    return 0;
}
P-1604
Patzick
Temat założony przez niniejszego użytkownika
» 2008-09-16 23:31:56
niestety nie daje takiego efektu jaki bym chciał :(
wyświetla mi jakieś cyfry ( z tego co wyczytałem to ilość godzin od 1970 roku), ja chciałbym jednak, żeby wyświetlało mi dzień, miesiąc i rok. Czy da się to rozgraniczyć jakoś?
P-1605
DejaVu
» 2008-09-17 00:12:06
C/C++
#include <stdio.h>
#include <time.h>
int main()
{
    time_t czas = time( NULL );
    struct tm * odczytCzasu = localtime( & czas );
    printf( "Obecny czas to: %s", asctime( odczytCzasu ) );
    return 0;
}
Jeśli chcesz po polsku, musisz sobie odczytać poszczególne pola, które Ciebie interesują ze zmiennej odczytCzasu.

/edit:
Pola struktury tm masz opisane tutaj: http://ddt.pl/kursy/?LessonId=109
P-1606
Patzick
Temat założony przez niniejszego użytkownika
» 2008-09-17 16:12:26
Niestety dalej pokazuje 7-cyfrową liczbę 4063184

kod wygląda tak

C/C++
void ObslugaMenu()
{
    time_t czas = time( NULL );
    struct tm * odczytCzasu = localtime( & czas );
    //inicjacja
    do
    {
        clear_to_color( bufor, makecol( 0, 0, 0 ) );
        //obsługa menu
        if( key[ KEY_S ] ) ObslugaGry();
        //wyświetlanie grafiki menu
       
        blit( tlo_menu, bufor, 0, 0, 0, 0, 660, 480 );
        textprintf_ex( bufor, font, 250, 250, makecol( 255, 255, 255 ), - 1, "Graj (klawisz S)" );
        textprintf_ex( bufor, font, 250, 270, makecol( 255, 255, 255 ), - 1, "Wyjdz (klawisz Q)" );
        textprintf_ex( bufor, font, 250, 20, makecol( 255, 255, 255 ), - 1, "Dzis jest %d r.", asctime( odczytCzasu ) );
        blit( bufor, screen, 0, 0, 0, 0, 660, 480 );
       
       
    } while( !( key[ KEY_Q ] || close_button_pressed ) );
    //zakończenie
};

Jeżeli możesz napisz mi przykład podający dzień, miesiąc i rok, byłbym wdzięczny :) pozdrawiam
P-1607
DejaVu
» 2008-09-17 17:18:10
W moim przykładzie jest %s a nie %d.
P-1608
« 1 » 2
  Strona 1 z 2 Następna strona