Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Probleme mit cout <<

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
07.05.2004, 11:32 Uhr
~noobie
Gast


Hi Leute!
Hab da so ein mehr oder weniger kleines Problem mit cout.

Erstmal die Bibliotheken die ich verwende:

C++:
#include <stdio.h>
#include <iostream.h>
#include <string.h>
#include <iomanip>
#include <conio.h>
#include <time.h>    
#include <math.h>    
#include <ctype.h>
#include "formel.h"        //Formelsammlung
#include "definition.h"    //Vordefinierte Werte
using namespace std;



Also mein Problem ist das bei cout manchmal nichts ausgegeben wird
z.B. wenn ich sowas eingebe:

C++:
cout << "wert eingeben blabla";    //ohne << endl; weil Zeilenumbruch nicht erwünscht
wert1 = berechne(wert2);    //Eingabe und bearbeitung durch externes Programm


Wenn ich sowas in der Art verwende zeigt mir das Programm nach dem Kompillieren nichts an wenn es zu so einer stelle kommt

Wenn ich sowas verwende:

C++:
cout << "wert eingeben";
cin >> wert;


oder

C++:
cout << "Hallo" << endl;


funktioniert es ohne Probleme

Mein Lehrer meint nur ich soll printf verwenden aber das kann ja auch keine optimale Lösung sein oder?

Hoffe jmd hier weis woran das liegt schonmal danke im vorraus
gruss noobie
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
07.05.2004, 11:54 Uhr
~noobie
Gast


PS: Verwende Microsoft Visual C++ 6.0 Autoren Edition
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
07.05.2004, 12:29 Uhr
RedEagle



komisch
ist der code kopiert??

Code:
(diese:
cout << "wert eingeben blabla";    //ohne << endl; weil Zeilenumbruch nicht erwünscht
wert1 = berechne(wert2);    //Eingabe und bearbeitung durch externes Programm
)


Wen nnciht, dann kopier ihn mal, vieleicht hast du nen schreibfehler gemacht

ODER!!!!

sieht dein Programm etwa so aus??

C++:
//...
int main()
{
int wert1,wert2;
cout << "Geben sie wert 2 an:";
cin >> wert2;

cout << "wert2 wurde eingegeben";
wert1 = berechne(wert2);

return 0;
}



wenn ja, dann schreib vor dem "return 0;"
system("pause");
--
MFG RedEagle

Dieser Post wurde am 07.05.2004 um 12:29 Uhr von RedEagle editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
07.05.2004, 13:04 Uhr
typecast
aka loddab
(Operator)


Es handelt sich dabei nicht um einen Fehler.

Das Problem liegt daran, dass cout nicht direkt auf den Bildschirm schreibt, sondern die Ausgabe puffert, d.h. du musst cout expliziet dazu bringen, dass der Puffer ausgeschrieben wird. Dazu gibt es mehrere Möglichkeiten:

1.) << endl; bewirkt ein flushen, aber das willst du ja nicht.
2.) cout << setiosflags(ios::unitbuf) << "BlaBal" << resetiosflags(ios::unitbuf);
setiosflags(ios:unitbuf) Bewirkt, dass BlaBla sofort ausgegeben wird. resetiosflags() macht
die ganze Sache wieder rückgängig.
3.) cout << "BlaBla";
cout.flush(); Flushed cout ähnlich wie endl, fürgt aber kein Newline an.
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
07.05.2004, 13:10 Uhr
RedEagle




Also ich hatte nco nie Probleme damit, das cout etwas nicht anzeigt, außer das Programm war so schnell zuende, das man es nicht mer lesen kann (aber das ändert ja getch(); (bzw. system("pause");
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
07.05.2004, 13:11 Uhr
0xdeadbeef
Gott
(Operator)



C++:
cout << "wert eingeben blabla" << flush;


Übrigens solltest du dir angewöhnen, die C++-Header aus dem neuen Standard zu benutzen, also:

C++:
// C++-Header
#include <iostream>
#include <iomanip>

// alte C-Header im neuen Gewand - warum du die benutzt, ist mir schleierhaft.
#include <cstdio>
#include <cstring>
#include <conio.h> // vor allem die hier.
#include <ctime>    
#include <cmath>    
#include <cctype>

#include "formel.h"        //Formelsammlung
#include "definition.h"    //Vordefinierte Werte

// igittibäh. Lieber nachher std::cout << "bla bla" << std::flush;
// Da sieht man wenigstens wo der Kram herkommt.
using namespace std;


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
07.05.2004, 15:30 Uhr
~noobie
Gast


Erstmal danke für die Zahlreichen vorschlage werd gleich ma alles Testen

Warum ich den kram benutze ? ganz einfach mein Lehrer hat es uns so beigebracht und wenn ichs nich besser weis hör ich nun ma aufn Lehrer

greetz noobie
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
07.05.2004, 15:44 Uhr
Pablo
Supertux
(Operator)



Zitat:
0xdeadbeef postete

C++:

// alte C-Header im neuen Gewand - warum du die benutzt, ist mir schleierhaft.
#include <conio.h> // vor allem die hier.





Außerdem ist das nicht ANSI!!!
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 07.05.2004 um 15:44 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
07.05.2004, 15:47 Uhr
~noobie
Gast


Super es geht

habs jetzt so gemacht

C++:
cout << "wert eingeben blabla" << flush;



Nochma danke !
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: