Readfunktion produziert 0000000



  • Ist das der 2. Parameter bei getline? der int ?



  • was ist eigentlich <<red<<?? wie ist das definiert?



  • Herr der Dinge schrieb:

    Ist das der 2. Parameter bei getline? der int ?

    Lideric schrieb:

    ifstream::getline() nimmt als zweiten Parameter die maximale Anzahl einzulesender Zeichen. Der dritte Parameter ist ein Zeichen, bei dem alternativ zur maximalen Zeichenzahl gestoppt werden soll.



  • kk thx.

    <<red<< is ein von mir geschriebener streammanipulator, der dank der von wem-auch-immer geschriebenen console.h die textausgabe rot färbt.



  • if(!in)
    

    und

    if(!Vokabel)
    

    sind natürlich überflüssig, wenn das keine dynamisch erzeugten Objekte sind.



  • Falsch. !in ist nicht überflüssig, weil das Ergebnis davon abhangt, ob die Datei geöffnet werden konnte (operator! ist für Streams überladen).



  • ja, aber er fragt doch schon

    if(in.is_open())
    

    dann muß er nicht auch noch

    if(!in)
    

    prüfen.



  • Richtig, der zweite Test (in.is_open()) ist überflüssig.



  • Herr der Dinge schrieb:

    kk thx.

    <<red<< is ein von mir geschriebener streammanipulator, der dank der von wem-auch-immer geschriebenen console.h die textausgabe rot färbt.

    kannse source geben? 🙂



  • Guck dir doch einfach die Improved Console von Marc++us in der FAQ an.



  • Klaro, kein Problem:

    //Nur das Nötigste
    #include <iomanip> //IO-manipulatoren
    #include <conio.h> //Für SetFontColor() (Hoff ich doch...)
    //console.h brauchte ich komischerweise bei neueren Tests nicht mehr. Probiers mal ohne.
    
    //Deklaration
    ostream &red(ostream &stream);
    
    //Implementation
    ostream &red(ostream &stream)  //rot
    {
    	SetFontColor(2);
    
    	return stream;
    }
    
    void SetFontColor(int Color)
    {	
    	switch (Color)
    	{
    	case 0:    // weiß
    		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                            FOREGROUND_INTENSITY | FOREGROUND_RED |
                            FOREGROUND_GREEN | FOREGROUND_BLUE);
    		break;
    
    	case 1:    // schwarz
    		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
    						FOREGROUND_INTENSITY);
    		break;
    
    	case 2:		// rot
    		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                            FOREGROUND_INTENSITY | FOREGROUND_RED);
    		break;
    
    	case 3:		// blau
    		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                            FOREGROUND_INTENSITY | FOREGROUND_BLUE);
    		break;
    
    	case 4:		// grün
    		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                            FOREGROUND_INTENSITY | FOREGROUND_GREEN);
    		break;
    
    	case 5:		// magenta
    		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                            FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_BLUE);
    		break;
    
    	case 6:		// cyan
    		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                            FOREGROUND_INTENSITY | FOREGROUND_GREEN | FOREGROUND_BLUE);
    		break;
    
    	case 7:		// gelb
    		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                            FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN);
    		break;
    
    	case 8:    // grau
    		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                            FOREGROUND_INTENSITY | FOREGROUND_INTENSITY);
    	}
    }
    

Anmelden zum Antworten