Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Patrick

Alter Hase

  • »Patrick« ist der Autor dieses Themas

Beiträge: 1 264

Wohnort: Düren

Beruf: Fachinformatiker für Anwendungsentwicklung

  • Private Nachricht senden

11

21.10.2003, 23:30

LOL

Ich glaub in ein paar Min poste ich den neuen Code mit den Verbesserungen, damit auch jeder den selben hat :)

Anonymous

unregistriert

12

21.10.2003, 23:32

@david Scherfgen:
Um es mit Patricks Worten auszudrücken:
lol?
:huhu:

Patrick

Alter Hase

  • »Patrick« ist der Autor dieses Themas

Beiträge: 1 264

Wohnort: Düren

Beruf: Fachinformatiker für Anwendungsentwicklung

  • Private Nachricht senden

13

21.10.2003, 23:37

Und hier der Offizielle neue Code:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
// Datei:           main.cpp
// //////////////////////////////////////////////////////////////////////////////////
// Autor:           Patrick Ullmann                             © Xarent Interactive
// Erstellt:        21.10.03
// Änderungen:     21.10.03    (Patrick)   Datei erstellt
// //////////////////////////////////////////////////////////////////////////////////
// Beschreibung:    Hauptdatei

// I N C L U D E S //////////////////////////////////////////////////////////////////
    // Standardheader (_ohne_ *.h)
#include <iostream>
#include <sstream>
#include <algorithm>    // für std::reverse

    // Wird zwar KEIN bischen von benutzt, aber für 
    // die Übungen brauchbar. 
#ifdef _WIN32 
#define WIN32_LEAN_AND_MEAN 
#include <windows.h> 
#endif 

// D E F I N I T I O N E N //////////////////////////////////////////////////////////
    // Deutsche Umlaute definieren
namespace UMLAUTS 
{ 
    const unsigned char AE = static_cast < unsigned char > ( 142 ); 
    const unsigned char ae = static_cast < unsigned char > ( 132 ); 
    const unsigned char OE = static_cast < unsigned char > ( 153 ); 
    const unsigned char oe = static_cast < unsigned char > ( 148 ); 
    const unsigned char UE = static_cast < unsigned char > ( 154 ); 
    const unsigned char ue = static_cast < unsigned char > ( 129 ); 
    const unsigned char ss = static_cast < unsigned char > ( 225 ); 
}

    // Bestimmte ASCII Zeichen definieren
namespace SIGNS
{
    const unsigned char SMILE1 = static_cast < unsigned char > ( 001 ); 
    const unsigned char SMILE2 = static_cast < unsigned char > ( 002 ); 
    const unsigned char BORDERLINE = static_cast < unsigned char > ( 196 ); 
}

// F U N K T I O N E N //////////////////////////////////////////////////////////////
std::string TextToBinaer(std::string Text)  
{  
    std::string         StringBuffer;
    std::stringstream   StreamBuffer;
    
    for (std::string::iterator i = Text.begin(); i != Text.end(); ++i)
    {
        StringBuffer = "";
        int a = static_cast<int>(*i);  
       
        for (int j=0; j<8; ++j)   
        {     
            if (a & 0x01) 
                StringBuffer += "1"; 
            else 
                StringBuffer += "0"; 

            a >>= 1;   
        };  
            // String umdrehen
        std::reverse (StringBuffer.begin(),StringBuffer.end());
        StringBuffer += " ";

            // String in den StreamBuffer reinschreiben
        StreamBuffer << StringBuffer;
    };  

    return (StreamBuffer.str());
 } 

int main (int argc, char *argv[])
{
    // Only for Win32 Console Application :D
#ifdef _WIN32
        // Consolen Handle abfragen
    HANDLE Handle = GetStdHandle(STD_OUTPUT_HANDLE);
   
        // Farbe setzen
    SetConsoleTextAttribute(Handle, FOREGROUND_RED  | 
                                    FOREGROUND_BLUE  |
                                    FOREGROUND_GREEN  |
                                    FOREGROUND_INTENSITY |                                  
                                    BACKGROUND_BLUE); 
#endif

    std::cout << "Willkommen zum BitWriter v1.0a   von Patrick Ullmann" << std::endl;

    // Only for Win32 Console Application :D
#ifdef _WIN32   
        // Farbe setzen
    SetConsoleTextAttribute(Handle, FOREGROUND_RED  | 
                                    FOREGROUND_BLUE  |
                                    FOREGROUND_GREEN  |
                                    FOREGROUND_INTENSITY); 
#endif

    std::string     Word;

    std::cout << std::endl << "Bitte Wort eingeben: ";
    std::cin >> Word;

    std::cout << std::endl << "Dein Text in Bin" << UMLAUTS::ae << "r:" << std::endl;
    std::cout << std::endl << TextToBinaer (Word) << std::endl; 

        // Damit sich die Console nicht so schnell
        // schließt unter Windows.
#ifdef _WIN32
    int x;
    std::cin >> x;
#endif

    return 0;
}


@David:
Du solltest dir mal nen C++ Syntax Hack für das Board saugen :D

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

14

21.10.2003, 23:42

Ja, wollte ich tun, aber hat nicht funktioniert.
Zeig mir doch mal einen guten...

Patrick

Alter Hase

  • »Patrick« ist der Autor dieses Themas

Beiträge: 1 264

Wohnort: Düren

Beruf: Fachinformatiker für Anwendungsentwicklung

  • Private Nachricht senden

15

21.10.2003, 23:47

okay ich mach mich mal auf die Suche :)

Tobiking

1x Rätselkönig

  • Private Nachricht senden

16

22.10.2003, 01:45

Der Inhalt dieses Workshops ist genau meine Schwachstelle wo ich 0 Peilung habe. Wo lernt man das?

Patrick

Alter Hase

  • »Patrick« ist der Autor dieses Themas

Beiträge: 1 264

Wohnort: Düren

Beruf: Fachinformatiker für Anwendungsentwicklung

  • Private Nachricht senden

17

22.10.2003, 01:53

Fragen wir mal konkreter:
Was verstehst du net, bzw. wo ist 0 Plan?

18

22.10.2003, 02:20

Die Funktion

Quellcode

1
std::string TextToBinaer(std::string Text)
sollte in

Quellcode

1
std::string TextToBinaer(const std::string& Text)
geendert werden.

1) Es wird dann keine Kopie erzeugt (Kein Aufruf des Kopierkonstruktors)
2) Das String-Objekt wird ja in der Funktion nicht geendert. Also "const". Dadurch muss sich natürlich auch der Iteratorzugriff ändern

Quellcode

1
std::string::iterator -> std::string::const_iterator
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

Patrick

Alter Hase

  • »Patrick« ist der Autor dieses Themas

Beiträge: 1 264

Wohnort: Düren

Beruf: Fachinformatiker für Anwendungsentwicklung

  • Private Nachricht senden

19

22.10.2003, 02:25

@DragonMaster
Wird gemacht :) achja. geändert schreibt man mit Ä oder mit ae ;D

20

22.10.2003, 02:56

Wenn ich schon mal dabei bin, kann man das ganze ja auch noch in eine Klasse packen. Schließlich ist C++ eine Objekt Orientierte Sprache :)
Ersteinmal die Klasse

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
// CONVERTION CLASS ///////////////////////////////////////////////////
class TextToBinary
{
    std::stringstream   m_StreamBuffer;

protected:
    void TextToBinare(const std::string& Text);

public:
    TextToBinary() {}
    TextToBinary(const TextToBinary& ttb) : m_StreamBuffer(ttb.m_StreamBuffer.str()) {}
    TextToBinary(const std::string& strText)
    {
        TextToBinare(strText);
    }
    ~TextToBinary() {}

    TextToBinary& operator << (const std::string& strText)
    {
        TextToBinare(strText);
        return *this;
    }

    friend std::string& operator << (std::string& out, const TextToBinary& ttb)
    {
        out << ttb.m_StreamBuffer.str();
        return out;
    }
    friend std::ostream& operator << (std::ostream& out, const TextToBinary& ttb)
    {
        out << ttb.m_StreamBuffer.str();
        return out;
    }
    friend std::istream& operator >> (std::istream& in, TextToBinary& ttb)
    {
        std::string buf;
        std::cin >> buf;
        ttb.TextToBinare(buf);
        return in;
    }
    friend std::string& operator >> (std::string& in, TextToBinary& ttb)
    {
        ttb.TextToBinare(in);
        return in;
    }
};
///////////////////////////////////////////////////////////////////////
Leider besitzt der StringStream keinen Kopierkonstruktor, also muss ich einen kleinen Umweg gehen. Dann die veränderte TextToBinare Funktion, nu ise ne Methode

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// F U N K T I O N E N ////////////////////////////////////////////////////////////// 
//std::string TextToBinaer(const std::string& Text)
void TextToBinary::TextToBinare(const std::string& Text)
{  
    std::string         StringBuffer; 
//  std::stringstream   StreamBuffer; 
    
    for (std::string::const_iterator i = Text.begin(); i != Text.end(); ++i) 
    { 
        StringBuffer = ""; 
        int a = static_cast<int>(*i);  
       
        for (int j=0; j<8; ++j)    
        {      
            if (a & 0x01) 
                StringBuffer += "1"; 
            else 
                StringBuffer += "0"; 

            a >>= 1;    
        };  
        // String umdrehen 
        std::reverse (StringBuffer.begin(),StringBuffer.end()); 
        StringBuffer += " "; 

        // String in den StreamBuffer reinschreiben 
//      StreamBuffer << StringBuffer; 
        m_StreamBuffer << StringBuffer;
    };  

//  return (StreamBuffer.str()); 
}
///////////////////////////////////////////////////////////////////
Die alten Elemente wurden nur Auskommentiert.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

Werbeanzeige