Binärisch Alphabet in Zahlen



  • benny111120032 schrieb:

    Also ich wollte als spass ma nen kleines Programm schreiben das einen Satz/oder einen einfachen buchstaben umwandelt zu Binär Code/s
    und dannach auf click wiederum in eine *txt wandelt

    Ist doch 'ne nette Aufgabe. Das geht in C++ z.B. so:

    #include <iostream>
    #include <bitset>
    #include <sstream>
    
    class BitCoder : std::streambuf
    {
    public:
        typedef std::streambuf base_type;
        explicit BitCoder( std::basic_ios< char >& strm )
            : base_type()
            , m_strm( strm )
            , m_target( m_strm.rdbuf( this ) )
            , m_c()
        {}
        ~BitCoder()
        {
            m_strm.rdbuf( m_target.rdbuf() );
        }
    protected:
        virtual int_type overflow( int_type c = traits_type::eof() )
        {
            if( !traits_type::eq_int_type( c, traits_type::eof() ) )
            {
                const std::bitset< 7 > bs( traits_type::to_char_type( c ) );
                m_target << bs << " ";
            }
            return traits_type::not_eof( c );
        }
        virtual int_type underflow()
        {
            std::bitset< 7 > bs;
            if( m_target >> bs )
            {
                m_c = char( bs.to_ulong() );
                setg( &m_c, &m_c, &m_c + 1 );
                return traits_type::to_int_type( m_c );
            }
            return traits_type::eof();
        }
    
    private:
        // --   Kopieren nicht erlaubt
        BitCoder( const BitCoder& );
        BitCoder& operator=( const BitCoder& );
        // --   Members
        std::basic_ios< char >& m_strm;
        std::iostream m_target;
        char m_c;
    };
    
    int main()
    {
        using namespace std;
        { // -- Schreiben
            cout << "Hello World .. wird zu:" << endl;
            BitCoder bc( cout );
            cout << "Hello World" << endl;
        }
        cout << endl;
    
        { // -- Lesen
            istringstream buf( 
                "1000001 1101100 1101100 1100101 1110011 0100000 1101011 1101100 1100001 1110010 "
                "0100000 1100001 1110101 1100110 0100000 1100100 1100101 1110010 0100000 1000001 "
                "1101110 1100100 1110010 1100101 1100001 0100000 1000100 1101111 1110010 1101001 "
                "1100001 0001010" );
            BitCoder bc( buf );
            string txt;
            if( getline( buf, txt ) )
                cout << "\ngelesen: [" << txt << "]" << endl;
        }
        // oder ..
        BitCoder bc( cin );
        for( string txt; cout << "\nJede Eingabe mit 0001010 <LF> abschliesen: ", cin >> txt; )
            cout << "Ihre Eingabe: " << txt << endl;
        return 0;
    }
    

    benny111120032 schrieb:

    ich wills ja auch nicht als art sondern umwandln ich hab schon ne buchstaben liste wie das in Binär aussieht also A=>01000001 u.s.w. nur weiss ich nicht wie ich den veränderten text kopierbar ausgeben kann im DOS fenster is das schlecht

    Das wird wohl am besten über die Zwischenablage funktionieren. Du markierst und kopierst einen Text - machst irgendwo 'klick' - der Text wird aus der Zwischenablage abgeholt, mit dem Programm oben gewandelt und wieder hineingeschrieben. Anschließend kopierst Du den gewandelten Text dann wieder da hin, wo er hin soll.

    Wie das geht ist von Deiner Umgebung (Window, Linux, ..) abhängig. Da müsstest Du dann in dem entsprechenden Forum fragen.

    Gruß
    Werner



  • Wow... gute arbeit obwohl ich lieber nur gewusst haben will wie man sowas also binär inne txt schreibt^^

    Ich hab aber bei dem Code ein Problem
    Wen ich es Compile zeigts nen Error an(Linker error)

    [Linker error] undefined reference to `std::basic_streambuf<char, std::char_traits<char> >::seekoff(long long, std::_Ios_Seekdir, std::_Ios_Openmode)' 
    
      [Linker error] undefined reference to `std::istream::sentry::operator bool() const' 
    
      [Linker error] undefined reference to `std::basic_ios<char, std::char_traits<char> >::_M_setstate(std::_Ios_Iostate)' 
    
      ld returned 1 exit status 
    
     C:\Dokumente und Einstellungen\User\Desktop\Makefile.win [Build Error]  [Bina.exe] Error 1
    

    Oder ist der Code nicht Dev-C++ fähig?^^'



  • benny111120032 schrieb:

    Wow... gute arbeit obwohl ich lieber nur gewusst haben will wie man sowas also binär inne txt schreibt^^

    Entschuldige .. ich habe wohl schon wieder zu viel Background-Know-How vorausgesetzt. Also ändere main() in den Zeilen 56,57 nach

    ofstream file( "output.txt" );
            BitCoder bc( file );
            file << "Hello World" << endl;
    

    ein '#include <fstream>' musst Du dafür noch spendieren.

    benny111120032 schrieb:

    Ich hab aber bei dem Code ein Problem
    Wen ich es Compile zeigts nen Error an(Linker error)

    Komisch, das sieht so aus, als ob Du eine System-Library nicht dabei hast. Kannst Du ein einfaches Hello-World-Programm generieren? Ich kenne mich mit dem Dev-C++ nicht aus.

    Gruß
    Werner



  • Da bist du mit einem einfachen XOR-Verschleierer besser beraten. Dann kann man auch sehr einfach ein "Codewort" verwenden.



  • Also hallo Welt krieg ich hin genauso wie das münzen spiel also Das Nehm Spiel konnte ich auch basteln also eig hab ich alles...

    Da bist du mit einem einfachen XOR-Verschleierer besser beraten. Dann kann man auch sehr einfach ein "Codewort" verwenden.

    Was isn das?

    EDIT!: Also welche Programme verwendest du Visual ist mir zu verwirrend da blick ich nichts...
    und es bleiben immeroch die selben fehler...
    (Sorry für meine dummheit^^'')



  • benny111120032 schrieb:

    Also hallo Welt krieg ich hin ..

    Generiere bitte mal dieses Programm. Dann müsste der mittlere Linker-Fehler wieder auftauchen

    #include <iostream>
    #include <string>
    
    int main()
    {
        using namespace std;
        for( string txt; cout << "\nIhre Eingabe bitte: ", cin >> txt; )
            cout << "Ihre Eingabe: " << txt << endl;
        return 0;
    }
    

    tut er das?



  • Nope Dann kommt einfach nen eingabe Feld:

    http://ihostupost.com/files/232/hrthjrh.gif



  • Dann versteh' ich es nicht. Dann brauchst Du einen Dev-C++-Experten.

    😞 Werner



  • Gratz zum 650 Post^^

    Naja was für ein Program benutzt du den zum Compilern/Linken/Coden?



  • Jetzt kommt der 651'te 🙂 ...
    Ich benutzte 'Visual C++ 2005 Express Edition Beta 2' hier für die ng.



  • Hallo Werner,

    wieso die Beta 2?



  • Soo habs geladen und nochmal Gecodkopiert ^^

    jetz kommt der fehler in C++ Visualesisch xD

    ------ Build started: Project: Project2, Configuration: Debug Win32 ------
    Compiling...
    Bina.cpp
    .\Bina.cpp(13) : warning C4355: 'this' : used in base member initializer list
    Linking...
    Embedding manifest...
    Project : error PRJ0003 : Error spawning 'cmd.exe'.
    Build log was saved at "file://c:\Dokumente und Einstellungen\User\Eigene Dateien\Visual Studio 2005\Projects\Project2\Project2\Debug\BuildLog.htm"
    Project2 - 1 error(s), 1 warning(s)
    ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
    

    EDIT und das stand in der Build Log:

    Build Log      Build started: Project: Project2, Configuration: Debug|Win32
     Command Lines      Creating temporary file "c:\Dokumente und Einstellungen\User\Eigene Dateien\Visual Studio 2005\Projects\Project2\Project2\Debug\RSP0000053203332.rsp" with contents
    [
    /O2 /FD /EHsc /MT /Fo"Debug\\" /Fd"Debug\vc80.pdb" /c /TP ".\Bina.cpp"
    ]
    Creating command line "cl.exe @"c:\Dokumente und Einstellungen\User\Eigene Dateien\Visual Studio 2005\Projects\Project2\Project2\Debug\RSP0000053203332.rsp" /nologo /errorReport:prompt"
    Creating temporary file "c:\Dokumente und Einstellungen\User\Eigene Dateien\Visual Studio 2005\Projects\Project2\Project2\Debug\RSP0000063203332.rsp" with contents
    [
    /OUT:"C:\Dokumente und Einstellungen\User\Eigene Dateien\Visual Studio 2005\Projects\Project2\Debug\Project2.exe" /MANIFEST /MANIFESTFILE:"Debug\Project2.exe.intermediate.manifest" kernel32.lib
    
    ".\debug\Bina.obj"
    ]
    Creating command line "link.exe @"c:\Dokumente und Einstellungen\User\Eigene Dateien\Visual Studio 2005\Projects\Project2\Project2\Debug\RSP0000063203332.rsp" /NOLOGO /ERRORREPORT:PROMPT"
    Creating temporary file "c:\Dokumente und Einstellungen\User\Eigene Dateien\Visual Studio 2005\Projects\Project2\Project2\Debug\RSP0000073203332.rsp" with contents
    [
    /outputresource:"..\debug\Project2.exe;#1" /manifest
    
    ".\debug\Project2.exe.intermediate.manifest"
    ]
    Creating command line "mt.exe @"c:\Dokumente und Einstellungen\User\Eigene Dateien\Visual Studio 2005\Projects\Project2\Project2\Debug\RSP0000073203332.rsp" /nologo"
    Creating temporary file "c:\Dokumente und Einstellungen\User\Eigene Dateien\Visual Studio 2005\Projects\Project2\Project2\Debug\BAT0000083203332.bat" with contents
    [
    @echo Manifest resource last updated at %TIME% on %DATE% > ".\debug\mt.dep"
    ]
    Creating command line """c:\Dokumente und Einstellungen\User\Eigene Dateien\Visual Studio 2005\Projects\Project2\Project2\Debug\BAT0000083203332.bat"""
     Output Window      Compiling...
    Bina.cpp
    .\Bina.cpp(13) : warning C4355: 'this' : used in base member initializer list
    Linking...
    Embedding manifest...
    Project : error PRJ0003 : Error spawning 'cmd.exe'.
     Results      Build log was saved at "file://c:\Dokumente und Einstellungen\User\Eigene Dateien\Visual Studio 2005\Projects\Project2\Project2\Debug\BuildLog.htm"
    Project2 - 1 error(s), 1 warning(s)
    


  • @Konrad: Zufall .. das war die, die ich im August 2005 runtergeladen habe. Ich habe sie bisher nicht aktualisiert.



  • benny111120032 schrieb:

    jetz kommt der fehler in C++ Visualesisch xD

    Project : error PRJ0003 : Error spawning 'cmd.exe'.

    Das hat aber mit dem Linker-Error vom Dev-C++ nun rein gar nichts zu tun. Zu dem Fehler PRJ00003 steht bei MS in der Hilfe

    Error spawning 'command line'.

    A command, command line, which was formed from input in the Property Pages dialog box, returned an error code but no information will appear in the Output window.

    Possible reasons for this error:

    * Low system resources. Close some applications to resolve this.
    * Insufficient security privileges. Verify that you have sufficient security privileges.
    * The executable paths specified in VC++ Directories do not include the path for the tool that you are attempting to run.
    * For makefile projects, you are missing a command to run on either Build Command Line or Rebuild Command Line.

    passt da irgendwas für Dich?



  • nein ich versteh den fehler nich O.o

    Es sagt doch das es nichts zum ausgeben hat...


Anmelden zum Antworten