Typvergleich



  • Sagt mal wie kann man eigentlich in einer if abfrage prüfen, ob eine Variable einen bestimmten typ hat??
    man soll zum beispliel ein int eingeben. gibt aber ein zeichen (a,b,...)ein. nun sol das programm die zeichen einfach konvertieren . aber wie kann man das nun prüfen??? ich mein jetzt nich im debugger. :xmas1:



  • In C und in C++ hast du nicht wie in Java jederzeit die Möglichkeit auf Meta-Informationen einer Variable zuzugreifen. Du kannst den Typ also nicht direkt prüfen ohne ihn selbst abzuspeichern.

    Aber zeig mal ein Code-Beispiel was du damit machen möchtest, vielleicht gibt es ja eine Möglichkeit dein Problem anders zu lösen.

    Ich verschieb dich auf alle Fälle mal ins Standard-C++-Forum 🙂

    MfG SideWinder



  • Dieser Thread wurde von Moderator/in SideWinder aus dem Forum DOS und Win32-Konsole in das Forum C++ verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Ehm, also wenn du vom User Eingaben über tastatur erwartest, erhälst du doch immer einen String. dazu mußt du einfach jedes Zeichen auf Nummer 0 bis 9 überprüfen, wenn ein Alpha dabei ist -> peng!

    Natürlich gibts das aber schon fertig in der C++ Library: std::stringstream ist dein Freund und Helfer. Wird hier jede Woche mind. einmal im Forum die Frage gestellt, in den FAQs gibst die Antwort (kein Bock wieder was raus zusuchen).

    Wenn du boost hast, schau dir mal das noch leistungsfähigere boost::lexical_cast an.



  • SideWinder schrieb:

    In C und in C++ hast du nicht wie in Java jederzeit die Möglichkeit auf Meta-Informationen einer Variable zuzugreifen. Du kannst den Typ also nicht direkt prüfen ohne ihn selbst abzuspeichern.

    In C++ auch garnicht nötig, da wir keine Object-Basisklasse haben, wo jeder Object-Typ kommen kann. WIr haben Typsicherheit. Und wer void* benutzt, hat dann selber schuld.

    Alternativ würde ich aber trotzdem nicht sagen, das wir keine Metainfos haben. Wir haben die Runtime Type INformations. Er kann entweder dynamic_cast oder typeof benutzen.


Anmelden zum Antworten