Ich habe bei folgendem Programm ein Problem mit dem 2 cout! Es wird vom compiler übersehen und erst beim dritten cout ausgegeben , aber wenn ich hinten ein endl dazugebe funktioniert es einwandfrei aber er macht auch einen Zeilenumbruch den ich nicht gebrauchen kann. Kann mir bitte wer helfen. Es habe bereits zwei Programmierer gefragt konnten mir aber auch nicht helfen!
C++:
// Dateiename: new1.cpp // Zeigt die dynamische Belegung von Speicherplatz fuer Arrays
void main() { int i, nelem; // Zur Uebergabe der Groesse des Arrays. // Der Wert dieser Variablen wird // irgendwann zur Laufzeit festgelegt. char *cp; // Zeiger auf das Array char c;
cout << "\nWieviele Zeichen wollen sie eingeben\"Zahl\": "; cin >> nelem; cout << "\nGeben sie jetzt die Zeichen ein" ; cp = newchar[nelem+1];// Belegung des Speichers fuer das Array
i = 0; while ( i < nelem ) { c = getche(); cp[i++] = c; } cp[i] = '\0'; // string mit 0 Byte abschliessen cout << "\nIhre Eingabe: " << cp << endl;
delete [nelem] cp; // Freigabe des durch das Array // belegten Speicher // nelem ist optional aber nicht erforderlich }
Edit: Code-Tags eingefügtDieser Post wurde am 10.01.2003 um 12:08 Uhr von void* editiert.
ich weis inzwischen durch einen Zufall wie es funktioniert! in dem man hinten statt dem endl ein flush anfügt, was ich mich aber noch immer frage wieso muss ich das tun?
Ich bin in der stream Sache nicht ganz fit, aber ich denke mal dass die Ausgabe erfolgt, wenn der stream will und nicht nach jedem cout. Ein flush forciert das. Ein endl ist ein '\n' mit folgendem flush. -- Gruß void*