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

Dev-C++ jak zrobić by w ife dodać date błąd "too many decimal points in number"

Ostatnio zmodyfikowano 2012-11-18 15:46
Autor Wiadomość
dzaggiel
Temat założony przez niniejszego użytkownika
Dev-C++ jak zrobić by w ife dodać date błąd "too many decimal points in number"
» 2012-11-18 11:56:49
Witam mam problem tak jak w temacie kod do tego błędu wygląda tak if (data==12.08.2010 || data==12.08.2010r || data==12.08.2010r.) i teraz pytanie dlaczego ? . Jestem początkującym programistą i robię tak jakby formularz lub hmm takie pytania i odpowiedzi i potrzebuje żeby rozpatrywało podaną datę niestety nie działa i pokazuje się "too many decimal points in number" Przy dacie muszą być kropki więc jak to zrobić prawidłowo ?
P-69451
SeaMonster131
» 2012-11-18 12:04:01
Można to rozwiązać na kilka sposobów. Chociażby trzymać datę w postaci ciągu znaków - string.
P-69453
m4tx
» 2012-11-18 12:05:28
Jeżeli zmienna
data
 to ciąg znaków, to po prostu obejmij sprawdzane daty cudzysłowami i będzie ok :) Warto jednak wspomnieć że sposób, w jaki próbujesz sprawdzać datę nie jest zalecany. Datę przechowuj lepiej w jakiejś strukturze danych, unikniesz dzięki temu błędów i burdelu związanego z różnymi formatami w różnych narodowościach.
P-69456
dzaggiel
Temat założony przez niniejszego użytkownika
» 2012-11-18 12:08:38
mhym no dobrze a gdzie to przechowywać w takim razie i w jaki sposób później w ifie wywołać ? Jeśli chodzi o ten string np.?
P-69457
jsc
» 2012-11-18 12:14:58
Zrobić klasę data i przeciążyć operatory.
P-69459
dzaggiel
Temat założony przez niniejszego użytkownika
» 2012-11-18 12:18:59
A można tak po ludzku ? Ja dopiero zaczynam to są moje podstawy na studiach a nie zaawansowane algorytmy i kody. Prosił bym najlepiej z przykładem .
P-69460
Savail
» 2012-11-18 12:34:58
C/C++
#include <iostream>
#include <string>

class data
{
public:
    int string2int( std::string str ) //funkcja konwerujaca z typu std::string na int
    {
        int liczba;
        liczba = strtod( str.c_str(), NULL );
        return liczba;
    }
    std::string day, month, year;
};

int main()
{
    data Data;
    Data.day = "01";
    //...
    if( Data.day == "12" && Data.month == "01" && Data.year == "2012" )
    {
        //operacje
    }
    //a jeśli chcesz porównywać daty np sprawdzić która jest większa to używasz funkcji string2int aby zamienić na int w ten sposób
    if( Data.string2int( Data.day ) < 12 )
    {
        //operacje
    }
    return 0;
}

W powyższym kodzie potrzebny jest jeszcze chyba #include <stdlib.h>
P-69463
dzaggiel
Temat założony przez niniejszego użytkownika
» 2012-11-18 12:52:30
okey już jakiś postęp jest a teraz co mam wpisać do cin przed tym ? bo słowo data nie działa ? Jak wpisałem cin>>Data.day, Data.month,Data.year; to jakakolwiek data nie działa w sensie napisany wcześniej warunek "niepoprawna data" wychodzi a nie warunek przypisany pod konkretna datę.
Udało mi się podzielić cin na 3 no ale to w każdym rzędzie podaje tylko liczby i wychodzi data:
cin>>Data.day;
cin>>Data.month;
cin>>Data.year;
A jak zrobić by faktycznie była to data z kropkami w jednej kolumnie z literka r lub r. lub bez ?
P-69466
« 1 » 2
  Strona 1 z 2 Następna strona