Gibts das nur in C++?



  • Werden streams noch in irgend ner anderen Sprache zur Konvertierung von Zahl <-> String verwendet, oder gibts das nur in C++?



  • <@> schrieb:

    Werden streams noch in irgend ner anderen Sprache zur Konvertierung von Zahl <-> String verwendet, oder gibts das nur in C++?

    Streams für die Zahlenumwandlung kenne ich persönlich zwar nur aus C++ [Was aber nichts heißt, da ich auch nur ca. 5 Sprachen kenne; Wobei Streams durchaus in anderen Sprachen auch verwendet werden, nicht aber unbedingt als Üblicher weg für String<=>Zahl], aber Fehlende direkte Umwandlungen aus mehreren Sprachen. Dafür sind die Streams sehr möchtig (incl. diversen Formatierungsmöglichkeiten, Benutzerdefinierten Ausgaben/Eingaben...).

    Wobei ich persönlich lieber (soweit ich kein spezielles Format brauche) auf die boost-Konvertierungen zurückgreife:

    std::string text = "13";
    int i = boost::lexical_cast<int>(text);
    i += 10;
    text = boost::lexical_cast<std::string>(i);
    

    cu André



  • <@> schrieb:

    Werden streams noch in irgend ner anderen Sprache zur Konvertierung von Zahl <-> String verwendet

    kann sein, aber ich glaub's nicht. 'streams' sind ja irgendwie sowas wie abstrakte verbindungskanäle zwischen datenquelle und -senke. die sollten eigentlich nichts verändern. in Java z.b. gibts sowas ähnliches, wie etwa ObjectOutputStream, CipherOutputStream usw. aber das sind eigentlich filter bzw konverter. die doofe benamung kommt wohl daher, das das alles unterklassen einer 'echten' streamklasse sind.


  • Administrator

    asc schrieb:

    Wobei ich persönlich lieber (soweit ich kein spezielles Format brauche) auf die boost-Konvertierungen zurückgreife: ...

    Wobei Boost einfach die Streams in der Funktion kapselt. Also anders ist dabei nichts, es sieht höchstens etwas schöner aus, bzw. ist leserlicher und kompakter.

    Wie sieht es eigentlich aus, wie regelt der neue Standard das? Da kommen ja nun die stoi und co Funktionen für std::string . Ist irgendwas definiert, wie die intern aufgebaut sein müssen?

    Grüssli



  • Dravere schrieb:

    Wobei Boost einfach die Streams in der Funktion kapselt. Also anders ist dabei nichts, es sieht höchstens etwas schöner aus, bzw. ist leserlicher und kompakter.

    Wie sieht es eigentlich aus, wie regelt der neue Standard das? Da kommen ja nun die stoi und co Funktionen für std::string . Ist irgendwas definiert, wie die intern aufgebaut sein müssen?

    Grüssli

    Denk doch mal abstrakter! Die Implementierung ist völlig egal. Auch bei boosts lexical_cast sind rein zufällig Stream verwendet wurden. Aber es hätte auch was anderes sein können. Normalerweise definiert eine Schnittstelle keine Implementierung. Die Schnittstelle sagt nur "Das muß rein, und das kommt raus.". Wie das passiert ist unbekannt und unwichtig. Nun, du hast jetzt in den Sourcen von boosts lexical_cast geschaut... hem. Ist aber eigentlich völlig nebesächlich. Du kannst gerne lexical_cast anders implementieren. Hauptsache es funktioniert.

    Nun darfst du raten, ob der Standard vorgibt, wie stoi implementiert ist.



  • Nö, das können viele Sprachen bzw. deren Bibliotheken, dort heißt es dann halt anders.
    Aber das Konzept eines Strings in welchen man schreibt und liest (formatiert versteht sich) ist nichts C++-exklusives.


Log in to reply