CYFROWY BARON • PROGRAMOWANIE • Zobacz wątek - ToDouble()

ToDouble()

dział ogólny

Re: ToDouble()

Nowy postprzez polymorphism » środa, 21 stycznia 2015, 16:20

Oczywiście, że przeczytałem to co podesłałeś.

Problem w tym, że skupiłeś się tylko na jednej funkcji - difftime. A tam są inne, równie ciekawe funkcje, np. mktime czy ctime:
KOD cpp:     UKRYJ  
tm tm_;

tm_.tm_sec = 0;
tm_.tm_min = 0;
tm_.tm_hour = 0;
tm_.tm_mday = 1;
tm_.tm_mon = 0;
tm_.tm_year = 71; // nie wiem dlaczego, ale zera nie przyjmuje :/
tm_.tm_wday = 0;
tm_.tm_yday = 0;
tm_.tm_isdst = 0;

time_t t = mktime( &tm_ );
       
cout <<  ctime( &t ) << '\n';
 


(...) ale bez zastosowania tego co zrobiłem dostaje komunikat:

Bo nie myślisz co robisz. time_t jest typem liczbowym ze znakiem (int32 lub int64), a Ty chcesz mu przypisać stringa?! Mi nie chodziło o sam fakt konwersji - bo jeśli taką trzeba zrobić, to innej opcji nie ma - tylko o to, że używasz nieodpowiednich typów i funkcji.

Mam sobie zadeklarować long long?

Masz sobie zadeklarować time_t.

Nawet nie, raczej tylko o zdefiniowane już policy wpisywania hasła i jego weryfikację

No błagam Cię. To tego chcesz jakiejś biblioteki? Przecież takie rzeczy się pisze samodzielnie w 5 minut.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows 7Firefox

Re: ToDouble()

Nowy postprzez nvdante » środa, 21 stycznia 2015, 16:41

polymorphism napisał(a):Problem w tym, że skupiłeś się tylko na jednej funkcji - difftime. A tam są inne, równie ciekawe funkcje, np. mktime czy ctime:

Czytałem o mktime, ale nie rozumiem, jak mam sobie stringa zamienić na czas kalendarzowy?
Poza tym skoro mam zmienną time_t czas to dla testów zrobiłem: difftime ( czas, czas );
W wyniku powinienem dostać 0, a nie dostałem. Wynik to wartość czas ( druga zmienna ) i tego nie rozumiem.
Odpowiedz proszę na to co powyżej napisałem, a ja spróbuję użyć tej struktury.

Bo nie myślisz co robisz. time_t jest typem liczbowym ze znakiem (int32 lub int64), a Ty chcesz mu przypisać stringa?! Mi nie chodziło o sam fakt konwersji - bo jeśli taką trzeba zrobić, to innej opcji nie ma - tylko o to, że używasz nieodpowiednich typów i funkcji.

Rozumiem, po prostu zasugerowałem się tym, że difftime daje zmienną double w wyniku i tak już poszło dalej.

Masz sobie zadeklarować time_t.

Mam i korzystam, w tym problem.
To, że zapisuję time_t czas to pliku, a później go z niego odczytuje nie powinno raczej powodować problemu, a jednak coś robię źle.

No błagam Cię. To tego chcesz jakiejś biblioteki? Przecież takie rzeczy się pisze samodzielnie w 5 minut.

No wiesz, dlatego to Ty odpowiadasz na moje pytania, a nie ja na Twoje :) Ty wiesz, ja nie, więc szukam rozwiązań.
Liberae sunt nostrae cogitationes
Avatar użytkownika
nvdante
Intelektryk
Intelektryk
 
Posty: 188
Dołączył(a): piątek, 12 czerwca 2009, 16:58
Lokalizacja: Dom
Podziękował : 8
Otrzymał podziękowań: 0
System operacyjny: Windows 7
Kompilator: VS 2015
Gadu Gadu: 0
    Windows VistaFirefox

Re: ToDouble()

Nowy postprzez polymorphism » środa, 21 stycznia 2015, 20:55

jak mam sobie stringa zamienić na czas kalendarzowy?

Jeśli czas w pliku jest zapisany w formie DD-MM-YYYY HH:MM, to obawiam się, że musisz napisać sobie funkcję, która to zrobi. Myślę, że wspomniana sscanf do tego spokojnie się nada. Uzyskanymi ze stringa danymi wypełniasz strukturę tm i funkcją mktime konwertujesz do sekund (time_t).

Poza tym skoro mam zmienną time_t czas to dla testów zrobiłem: difftime ( czas, czas ); W wyniku powinienem dostać 0, a nie dostałem.

Nie wierzę, że nie dostałeś zera.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows 7Firefox

Re: ToDouble()

Nowy postprzez nvdante » czwartek, 22 stycznia 2015, 10:17

A zobacz taki kod:
KOD cpp:     UKRYJ  
time_t czas;
struct tm * data;

time( & czas );
data = localtime( & czas );

printf ("Czas %.f sekund", difftime(czas, czas));

U mnie to nie daje 0, tak, jak mówiłem.

Rozumiem kwestię napisania funkcji wypełniającej strukturę, ale zanim to zrobię to pytanie "czy można prościej". Skoro do pliku mogę zapisać dane w takim formacie jak mnie interesuje byle się łatwo operowało to co byłoby najłatwiejsze do wykorzystania? Myślałem, że timestamp, więc wrzuciłem 1488....., ale jeśli łatwiej będzie użyć DD-MM-YYYY HH:MM to również mogę to zrobić. Podpowiedz mi tylko na czym łatwiej będzie mi operować.
Pisałem kiedyś kod dla powłoki bash i używając timestamp bardzo ładnie wszystko szło, więc liczyłem, że i teraz to będzie łatwe.
Poza tym piszesz, żeby funkcja time_t skonwertować wszystko na sekundy. Ja mam sekundy w pliku, potrzebuje tylko je odczytać w taki sposób, żeby odjąć zapisane w pliku od obecnej daty w sekundach.
Liberae sunt nostrae cogitationes
Avatar użytkownika
nvdante
Intelektryk
Intelektryk
 
Posty: 188
Dołączył(a): piątek, 12 czerwca 2009, 16:58
Lokalizacja: Dom
Podziękował : 8
Otrzymał podziękowań: 0
System operacyjny: Windows 7
Kompilator: VS 2015
Gadu Gadu: 0
    Windows VistaFirefox

Re: ToDouble()

Nowy postprzez polymorphism » czwartek, 22 stycznia 2015, 11:21

U mnie to nie daje 0, tak, jak mówiłem.

http://goo.gl/1yWx9H (compile i execute)

Co do pytania. Jeśli możesz zapisać timestamp, to oczywiście jest to najprostsza opcja.

Poza tym piszesz, żeby funkcja time_t skonwertować wszystko na sekundy.

Nic takiego nie pisałem. time_t to typ, a na sekundy konwertujesz funkcją mktime (tm -> time_t).

Ja mam sekundy w pliku, potrzebuje tylko je odczytać w taki sposób, żeby odjąć zapisane w pliku od obecnej daty w sekundach.

No to do konwersji użyj funkcji atoll.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Re: ToDouble()

Nowy postprzez nvdante » czwartek, 22 stycznia 2015, 13:04

polymorphism napisał(a):http://goo.gl/1yWx9H (compile i execute)

To ciekawe, bo ja z końcówki kodu:
KOD cpp:     UKRYJ  
        string linia;
        ifstream odczyt(rejestracja.c_str());
        getline (odczyt, linia);
        cout<<"Wjazd: "<<linia<<", wyjazd: "<<czas<<endl;
        odczyt.close();
       
        printf ("Czas %.f sekund", difftime(czas, czas));

        system("PAUSE");

dostaję Obrazek
Przypuszczam, że dlatego, bo tam jest C11, ale ja się nie znam :)

polymorphism napisał(a):Co do pytania. Jeśli możesz zapisać timestamp, to oczywiście jest to najprostsza opcja.

No dobra, mam taki kod:
KOD cpp:     UKRYJ  
time_t czas;
time( & czas );
data = localtime( & czas );

więc timestamp jest.

polymorphism napisał(a):Nic takiego nie pisałem. time_t to typ, a na sekundy konwertujesz funkcją mktime (tm -> time_t).

Faktycznie, mój błąd.

polymorphism napisał(a):No to do konwersji użyj funkcji atoll.

Chyba z tym mi się udało.
Zrobiłem:
zmienna=atoll(string.c_str());
Wynik wyświetla się prawidłowy, więc chyba jest ok.

Patrząc na Twój kod z poprzednich postów pomyślałem, że mniej więcej tak potrzebuję zrobić u siebie:
KOD cpp:     UKRYJ  
int czasowe; // tu na pewno deklaracja jest zła
        cin>>czasowe;
        time_t rezultat = mktime(czasowe);
        cout<<ctime(&t);

Mam rację?
Liberae sunt nostrae cogitationes
Avatar użytkownika
nvdante
Intelektryk
Intelektryk
 
Posty: 188
Dołączył(a): piątek, 12 czerwca 2009, 16:58
Lokalizacja: Dom
Podziękował : 8
Otrzymał podziękowań: 0
System operacyjny: Windows 7
Kompilator: VS 2015
Gadu Gadu: 0
    Windows VistaFirefox

Re: ToDouble()

Nowy postprzez polymorphism » czwartek, 22 stycznia 2015, 14:31

Przypuszczam, że dlatego, bo tam jest C11, ale ja się nie znam

Nie znasz się ;) C++'11 znaczy tyle, że użyty kompilator jest zgodny ze standardem C++ z 2011 roku (dzięki czemu mogę używać m.in wyrażeń lambda). Kod z przykładu jest prosty i powinien dać taki sam wynik na C++'97, C++'03, C++'11 czy C++'14. Niech no zgadnę: używasz gównianego Deva? Jeśli tak, wywal go w piździet i użyj Code::Blocks (pisałem Ci chyba już o tym).

No dobra, mam taki kod: (...) więc timestamp jest.

A po co to wywołanie localtime?

Mam rację?

Nie masz. Zajrzyj czasem do dokumentacji. mktime w parametrze przyjmuje wskaźnik na zmienną typu tm a nie int (vide mój przykład). Wypełnij strukturę odpowienimi danymi i dopiero wtedy konwertuj do timestampu.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows 7Firefox

Re: ToDouble()

Nowy postprzez nvdante » czwartek, 22 stycznia 2015, 15:36

polymorphism napisał(a):Nie znasz się ;)

Wiem :D

polymorphism napisał(a):Niech no zgadnę: używasz gównianego Deva? Jeśli tak, wywal go w piździet i użyj Code::Blocks (pisałem Ci chyba już o tym).

Zgadłeś, ale wiesz też dlaczego ( uczelnia ;) )
Tak czy inaczej to powinno działać, ale pewnie jak zwykle to mój błąd :(
swoją drogą.: Jak najprościej sprawdzić czy difftime działa w dev-cpp? Bo może cała ta zabawa już jest spisana na straty.

polymorphism napisał(a):Nie masz. Zajrzyj czasem do dokumentacji. mktime w parametrze przyjmuje wskaźnik na zmienną typu tm a nie int (vide mój przykład). Wypełnij strukturę odpowienimi danymi i dopiero wtedy konwertuj do timestampu.

Ale poczekaj, skoro mam zapis w timestampie to mam wypełnić strukturę i skonwertować na timestamp? Chyba coś nie tak. Chyba, że dzięki temu mam dostać time_t?
Poza tym nie wiem jak wypełnić strukturę wielu pól mając tylko jeden ciąg sekund. Pamiętam Twój przykład, ale tam ręcznie wstawiając cyfry generowało się datę, a tu już mam timestamp ( swoją drogą.: tm_year będzie 70, gdy tm_hour ustawisz na 1 co najmniej ).
Wydawało mi się, że skoro jest timestamp pierwszej zmiennej oraz czas lokalny również w timestampie to po wykonaniu operacji porównania ( difftime ) powinienem już przekonwertować to na datę kalendarzową.
Liberae sunt nostrae cogitationes
Avatar użytkownika
nvdante
Intelektryk
Intelektryk
 
Posty: 188
Dołączył(a): piątek, 12 czerwca 2009, 16:58
Lokalizacja: Dom
Podziękował : 8
Otrzymał podziękowań: 0
System operacyjny: Windows 7
Kompilator: VS 2015
Gadu Gadu: 0
    Windows VistaFirefox

Re: ToDouble()

Nowy postprzez nvdante » czwartek, 22 stycznia 2015, 17:44

Znalazłem w necie coś takiego:
KOD cpp:     UKRYJ  
int timestamp()
{
    time_t test;
    struct tm *Tm;
    cout<<test<<endl; // myślałem, że test jest w formacie timestamp, ale chyba nie: 19810489410452876
    test=time(NULL);
    Tm=localtime(&test);

    printf("[%d] %d %d %d, %d:%d:%d", Tm->tm_wday, Tm->tm_mday, Tm->tm_mon, Tm->tm_year, Tm->tm_hour, Tm->tm_min, Tm->tm_sec);
}

Teraz tak, nie pasuje mi test, bo to nie timestamp moim zdaniem, a na nim chcę operować.
Po drugie to co wyświetla printf nie wygląda najlepiej. Powinienem to jakoś przekonwertować?
Liberae sunt nostrae cogitationes
Avatar użytkownika
nvdante
Intelektryk
Intelektryk
 
Posty: 188
Dołączył(a): piątek, 12 czerwca 2009, 16:58
Lokalizacja: Dom
Podziękował : 8
Otrzymał podziękowań: 0
System operacyjny: Windows 7
Kompilator: VS 2015
Gadu Gadu: 0
    Windows VistaFirefox

Re: ToDouble()

Nowy postprzez polymorphism » czwartek, 22 stycznia 2015, 19:19

Jak najprościej sprawdzić czy difftime działa w dev-cpp?

Najprościej sprawdzić ten sam kod na innych kompilatorach. g++ z online'owego IDE, code::blocks i VC++ dają zero, czyli tak jak powinno być. Jeśli w Devie jest inaczej, wiesz co zrobić...

Ale poczekaj, skoro mam zapis w timestampie to mam wypełnić strukturę i skonwertować na timestamp?

Nie. Napisałem jedynie, jak powinno wyglądać poprawne użycie funkcji mktime, ponieważ w swoim kodzie użyłeś jej niepoprawnie. Jeśli w pliku datę masz zapisaną jako timestamp i chcesz ją porównać innych czasem w tej samej formie, wtedy ta funkcja nie jest Ci potrzebna.

Teraz tak, nie pasuje mi test, bo to nie timestamp moim zdaniem, a na nim chcę operować.

A co rozumiesz przez pojęcie timestamp?

Po drugie to co wyświetla printf nie wygląda najlepiej. Powinienem to jakoś przekonwertować?

A skąd do cholery mogę to wiedzieć? Przecież to Twój program. Jak Ci się printf nie podoba, to użyj strumienia cout.

p.s. generalnie nie powinno się mieszać strumieni C i C++.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows 7Firefox

Re: ToDouble()

Nowy postprzez nvdante » czwartek, 22 stycznia 2015, 22:48

polymorphism napisał(a):A co rozumiesz przez pojęcie timestamp?

Moim zdaniem to dane w postaci sekund od 1 stycznia 1970 roku.

Zerknij proszę na ten kod.
Jeśli znów czegoś nie pomieszam to: test i zmienna są typu time_t ( czyli chyba właśnie timestamp? ), następnie zapisuje to do struktur ( czy do wskaźników? ) info i informacja, a później powinienem to wyświetlić po sformatowaniu.
Tylko, że zamiast data* powinno być info i informacja, a to wywala program.
*data używam wcześniej w programie, więc sprawdziłem i zadziałało, ale deklaracja jest taka sama.
Teraz mam rację czy znów babol?
KOD cpp:     UKRYJ  
        time_t test;
        struct tm * info;
        char dzien2[80];
        strftime(dzien2, 80, "%d.%m.%Y", data);
        cout<<dzien2<<endl;
   
        time_t zmienna;
        struct tm * informacja;
        char cos[80];
        strftime(cos, 80, "%d.%m.%Y", data);
        cout<<cos<<endl;
       
        double x=difftime(test, zmienna);
        cout<<x<<endl;

Jeszcze difftime. Wcześniej brałem dzien2 i cos, a to było błędem, bo te chary nie są timestampem tylko w sumie sformatowaną strukturą ( o ile dobrze kumam ).
Faktycznie wykorzystanie surowych danych, czyli test i zmienna dało wynik 0.

Nadal jednak nie jestem pewny, jak pobraną wartość do stringa przekonwertować na time_t, a to będzie mi potrzebne, żeby zrobić jeden z argumentów dla difftime.
Chciałem użyć sscanf, ale tam rozpoznajesz dane po %u:%u, a w moim ciągu nie ma takich danych.
Liberae sunt nostrae cogitationes
Avatar użytkownika
nvdante
Intelektryk
Intelektryk
 
Posty: 188
Dołączył(a): piątek, 12 czerwca 2009, 16:58
Lokalizacja: Dom
Podziękował : 8
Otrzymał podziękowań: 0
System operacyjny: Windows 7
Kompilator: VS 2015
Gadu Gadu: 0
    Windows 7Firefox

Re: ToDouble()

Nowy postprzez polymorphism » czwartek, 22 stycznia 2015, 23:27

Moim zdaniem to dane w postaci sekund od 1 stycznia 1970 roku.

Zatem dlaczego twierdzisz, że time nie zwraca timestampu jeśli w dokumentacji masz jak wół:

The value returned generally represents the number of seconds since 00:00 hours, Jan 1, 1970 UTC (i.e., the current unix timestamp).



The encoding of calendar time in time_t is unspecified, but most systems conform to POSIX specification and return a value of integral type holding the number of seconds since the Epoch (1970).


Czytaj dokumentację!

Tylko, że zamiast data* powinno być info i informacja, a to wywala program.

info i informacja to niezainicjalizowane wskaźniki, stąd błąd.
KOD cpp:     UKRYJ  
tm info;
...

strftime(..., &info);


tm informacja;
...

strftime(..., &informacja);

Znowu odsyłam do podstaw C/C++ (rozdział o wskaźnikach).

Nadal jednak nie wiem, jak pobraną wartość do stringa przekonwertować na time_t,

Pokazałem Ci, jak przekonwertować stringa do timestampu jeśli tekst zawiera wartość time_t w formie tekstowej. Wydawało mi się, że w tej kwestii żadnych niedomówień już nie ma. Jeżeli tekst zawiera datę w innej formie, to musisz sobie napisać funkcję, która odpowiednio wyłuska poszczególne dane, po czym funkcją mktime przekonwertuje to timestampu - o czym też pisałem.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows 7Firefox

Re: ToDouble()

Nowy postprzez nvdante » piątek, 23 stycznia 2015, 01:04

polymorphism napisał(a):Zatem dlaczego twierdzisz, że time nie zwraca timestampu jeśli w dokumentacji masz jak wół:

Nie do końca o to mi chodziło. Jeżeli za timestamp uznajemy czas od 1 stycznia 1970 to "obecna" jego wartość jest w okolicach: 1421850000, a nie 19810489410452876. Właśnie dlatego założyłem, że tak liczba to nie może być timestamp ( może i sekundy, ale coś za długie ;) ).

[ciap]
KOD cpp:     UKRYJ  
tm info;

Jeżeli tak wpiszę to dostaję informację o redeklaracji, więc chyba inaczej trzeba.
Rano poczytam o wskaźnikach i może się więcej wyjaśni.

Jeżeli tekst zawiera datę w innej formie, to musisz sobie napisać funkcję

A no właśnie, czyli jedyna możliwość to napisanie funkcji, która to ogarnie. Stąd cały problem, bo myślałem, że jest coś takiego.
Liberae sunt nostrae cogitationes
Avatar użytkownika
nvdante
Intelektryk
Intelektryk
 
Posty: 188
Dołączył(a): piątek, 12 czerwca 2009, 16:58
Lokalizacja: Dom
Podziękował : 8
Otrzymał podziękowań: 0
System operacyjny: Windows 7
Kompilator: VS 2015
Gadu Gadu: 0
    Windows 7Firefox

Re: ToDouble()

Nowy postprzez polymorphism » piątek, 23 stycznia 2015, 11:06

Jeżeli za timestamp uznajemy czas od 1 stycznia 1970 to "obecna" jego wartość jest w okolicach: 1421850000, a nie 19810489410452876.

Heh, Ty to pechowiec jesteś, znowu coś nie tak :) Prawda jest taka, że time tak naprawdę nie zwraca timestampu w sekundach, tzn. może zwrócić, ale nie musi. To, w jakich jednostkach jest wyrażona zwrócona wartość, jest zależne od implementacji biblioteki, więc nie powinieneś robić jakichś założeń co do interpretacji tej wartości. Jeśli rzeczywiście dostajesz 19810489410452876, to znaczy timestamp jest wyrażony w innych jednostkach, mniejszych niż sekunda (z reguły jest to sekunda, bo większa precyzja jest tu po prostu niepotrzebna).

Jeżeli tak wpiszę to dostaję informację o redeklaracji, więc chyba inaczej trzeba.

A usunąłeś wskaźnik info?
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Re: ToDouble()

Nowy postprzez nvdante » piątek, 23 stycznia 2015, 11:49

polymorphism napisał(a):A usunąłeś wskaźnik info?

Nie, ale wywołanie 'delete info' również wywala program.
Nie bardzo wiem, jak zainicjować info.
Czy dobrze myślę, że ten kod:
KOD cpp:     UKRYJ  
        time_t test;
        struct tm * info;

oznacza, że mam zadeklarowaną zmienną test typu time_t oraz strukturę tm odwołującą się do info, która nie ma w sobie nic?
No bo *info powinno chyba, o ile dobrze rozumiem, wskazywać adres do jakiejś zmiennej, a nie mam nigdzie deklaracji co to jest info.

Swoją drogą ten sam kod odpaliłem na dwóch komputerach: w domu i w pracy.
Wynik difftime jest różny, w domu dostałem 0, tu nadal mam wartość drugiej zmiennej.
Masz jakiś pomysł? Uaktualniłem kompilator do najnowszej wersji i to samo.
Liberae sunt nostrae cogitationes
Avatar użytkownika
nvdante
Intelektryk
Intelektryk
 
Posty: 188
Dołączył(a): piątek, 12 czerwca 2009, 16:58
Lokalizacja: Dom
Podziękował : 8
Otrzymał podziękowań: 0
System operacyjny: Windows 7
Kompilator: VS 2015
Gadu Gadu: 0
    Windows VistaFirefox

Poprzednia stronaNastępna strona

Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 17 gości

cron