Readfunktion produziert 0000000
-
Herr der Dinge schrieb:
79 ist das Endline Zeichen.
Äh, nicht ganz. Das ist 10 (eigentlich gibt es kein Endline, nur Carriage Return und Newline), und selbst wenn solltest du '\n' benutzen, das ist dann sicher. Außerdem braucht man bei getline() das Zeilenende nicht explizit angeben, das wird logischerweise standardmäßig angenommen.
Und zu viele Zeichen hast du trotzdem in den Puffer geschrieben, egal wofür 79 nun steht.
-
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); } }