Stream auf andere Geräte



  • wie kann man einen Stream auf z.B. einem Drucker oder einer Soundkarte arbeiten lassen ?

    Ich finde nur dokumentationen die zwar sagen, dass man streams auf ein beliebiges gerät anwenden kann, sie erklären aber nicht WIE man das macht.



  • du musst eine klasse von basic_streambuf<> ableiten und ein paar virtuele methoden überschreiben
    schnell und dirty (ungepuffert)

    class ncurses_streambuf : public streambuf // streambuf ist ein typedef für basic_streambuf<char>
        {
        protected:
            virtual int_type overflow(int_type c = streambuf::traits_type::eof())
            {
                if(!traits_type::eq_int_type( c, traits_type::eof() ))
                {
                    // sende c an drücker
                }
                else
                    return traits_type::eof();
            }
    
        private:
            ncurses_streambuf(const ncurses_streambuf &);
            ncurses_streambuf & operator= (const ncurses_streambuf &);
        };
    
    int main()
    {
        ncurses_streambuf buf;
        ostream druecker( &buf);
        druecker << "Hallo";
    }
    

    [ Dieser Beitrag wurde am 22.03.2003 um 13:08 Uhr von Dimah editiert. ]


Log in to reply