Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding
You last visited: Today at 16:20

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



einfache anfänger frage zu "cout"

Discussion on einfache anfänger frage zu "cout" within the General Coding forum part of the Coders Den category.

Reply
 
Old   #1
 
reijin's Avatar
 
elite*gold: 20
Join Date: Feb 2006
Posts: 3,174
Received Thanks: 1,153
Hi!
Habe mir das Buch "C++ in 21 Tagen" besorgt, und will das jetzt durch arbeiten
Da C++ doch etwas anderes ist als C (was ich zumindest teils beherrsche) kann ich mir nicht besonders viel helfen.
Hier mein Problem:
(garantiert simpel aber ich packs halt nicht... :? )
wenn ich
Code:
#include <iostream.h>
schreibe (wie im Buch) so kann ich cout verwenden.
ich weiß aber, dass das ein "veralteter" standart ist.
also schreibe ich:
Code:
#include <iostream>
dann bekomme ich aber einen Compliler error:
Quote:
Originally posted by Dev-C++ beta 5
`cout' undeclared (first use this function)
un nu? was soll ich dann schreiben?? printf?! XD

achja: wie ist das eigentlich mit "getch(); " darf man das in C++ noch verwenden oder gibts da was anderes?

danke, gruß

----reijin----

//EDIT//
[img]text2schild.php?smilienummer=1&text=es winkt karma' border='0' alt='es winkt karma' /> (ich belohne immer wenn mir jemand hilft )
reijin is offline  
Old 12/30/2006, 19:29   #2
 
MacDan's Avatar
 
elite*gold: 0
Join Date: May 2005
Posts: 1,410
Received Thanks: 127
hhmm heist es nicht

iosteam ?? (ohne das "r")
bzw müsste das cout am anfang auch noch definiert werden
zB.:

Quote:
using std::cout;
und ja getchar(); darf in C noch verwendet werden...
MacDan is offline  
Old 12/30/2006, 19:33   #3
 
MacDan's Avatar
 
elite*gold: 0
Join Date: May 2005
Posts: 1,410
Received Thanks: 127
kannst aber auch dir das mal durchlesen...

MacDan is offline  
Old 12/30/2006, 19:57   #4
 
reijin's Avatar
 
elite*gold: 20
Join Date: Feb 2006
Posts: 3,174
Received Thanks: 1,153
Quote:
Originally posted by MacDan@Dec 30 2006, 19:29
und ja getchar(); darf in C noch verwendet werden...
ich meine in C++
und nein; es heißt "iostream" steam is was anderes XD
das mit dem definieren..

ich editiers dann rein

//EDIT//
wenn ichs vorher definiere gehts:
Code:
#include <iostream>

int main()
{
  using std::cout;
  cout << "hallo welt!\n";
  return 0;
}
aber ich verstehe nicht, warum ich cout vorher definieren muss...
ist doch ein ganz normaler Befehl wie "printf" auch oder!?? (und printf muss man nicht definieren)
reijin is offline  
Old 12/30/2006, 20:08   #5
 
sd333221's Avatar
 
elite*gold: 9
Join Date: Dec 2005
Posts: 621
Received Thanks: 365
Code:
#include <iostream>

int main()
{
  using std::cout;
  cout << "hallo welt!\n";
  return 0;
}
hmm so würde ich das _nicht_ machen...
es geht darum dass cout ein Befehl aus der std Bibliothek ist,
du könntest es auch so schreiben:

Code:
#include <iostream>

int main()
{
  std::cout << "hallo welt!" << std::endl;
  std::cout << "so spreche ich direkt die Bibliothek an!! :PPP" << std::endl;
  std::cout << "Wie alt bist du?" << std::endl;
  std::cout << "Alter: ";
  int age;
  std::cin >> age; // <- Ja, auch cin braucht das :D
  if(alter > 60)
      std::cout << "Du bist aber alt! << std::endl;
  return 0;
}
verwendet man nun using namespace std; <- das würde ich bevorzugen statt std::cout weil das dann nur für den cout Befehl gilt, so wird die Bibliothek schon eingebunden und du brauchst kein std mehr also:


Code:
#include &#60;iostream>
using namespace std;

int main&#40;&#41;
{
  cout &#60;&#60; &#34;hallo welt!&#34; &#60;&#60; endl;
  cout &#60;&#60; &#34;so spreche ich direkt die Bibliothek an!! &#58;PPP&#34; &#60;&#60; endl;
  cout &#60;&#60; &#34;Wie alt bist du?&#34; &#60;&#60; endl;
  cout &#60;&#60; &#34;Alter&#58; &#34;;
  int age;
  cin >> age;
  if&#40;alter > 60&#41;
      cout &#60;&#60; &#34;Du bist aber alt! &#60;&#60; endl;
  return 0;
}
Es hat sich in C++ eingebürgert das immer an den Anfang zu schreiben

Ich hoffe die Erklärung ist soweit ok
sd333221 is offline  
Old 12/30/2006, 20:46   #6
 
reijin's Avatar
 
elite*gold: 20
Join Date: Feb 2006
Posts: 3,174
Received Thanks: 1,153
hum, ich glaub das hab ich kapiert klasse erklärung
ich nehme an endl; ist endline (sowas wie &#092;n)??
also gilt:
Code:
cout &#60;&#60; &#34;hallo welt!&#092;n&#34;; = cout &#60;&#60; &#34;hallo welt!&#34; &#60;&#60; endl;
kannst du mir vllt erklären was genau das da macht:
Code:
using namespace std;
und dann noch eine Frage:
ist das ne Funktion?? (will nur die richtige bezeichnung wissen)

danke
reijin is offline  
Old 12/31/2006, 12:39   #7
 
sd333221's Avatar
 
elite*gold: 9
Join Date: Dec 2005
Posts: 621
Received Thanks: 365
Code:
ich nehme an endl; ist endline &#40;sowas wie &#092;n&#41;??
richtig geraten
gehört aber auch zu der libary also müsstest du "std::endl" schreiben falls
du kein "using namespace std;" verwendest.
Du solltest kein C++ und C vermischen also am besten kein printf und cout in der
selben applikation, das ist sehr "unschön"


Hier zu der richtigen Bezeichnung:
Quote:
Namespace - zu deutsch Namensraum kennzeichnet Einheiten die zusammengehören. zB ist die gesamt C++ Standard Library im namespace std zu finden. Namespace verhindern Namenskonflikte und teilen den Code in logische Einheiten auf. Kaum einer kennt die Standard Library wirklich auswendig. Es kann also passieren, dass man für eine Klasse einen Namen verwendet, den es bereits gibt -> das führt zu Problmen. Es muss ja auch kein Namenskonflikt mit der Standard Bibliothek sein, man kann ja auch mit anderen Bibliotheken solche Probleme bekommen.

In C verwendete man Prefixe, also statt class Integer, schrieb man class myInteger. Sowas ist aber auf dauer unbefriedigend.

Wir haben bereits Namensräume kennengelernt: using namespace std;. Dies ist eine using-Direktive, sie importiert alle Namen des Namensraumes std in den aktuellen (in unserem Fall den globalen) Namensraum. Mittels der using-Deklaration using std::cout; könnten wir nur cout importieren und alle anderen Namen unangetastet lassen.
Wenn du in C++ eine Konsolenapplikation programmierst würde ich dir empfehlen "endl" statt
"&#092;n" zu verwenden weil das die entsprechende C++ Funktion ist
sd333221 is offline  
Old 12/31/2006, 14:26   #8
 
reijin's Avatar
 
elite*gold: 20
Join Date: Feb 2006
Posts: 3,174
Received Thanks: 1,153
Quote:
Originally posted by sd333221@Dec 31 2006, 12:39
Wenn du in C++ eine Konsolenapplikation programmierst würde ich dir empfehlen "endl" statt
"&#092;n" zu verwenden weil das die entsprechende C++ Funktion ist
ist es bei Windows-applikationen anders? (mal abgesehen davon, dass ich kA hab wie ich eine Windows-app machen kann )

Darf ich noch ein paar Fragen stellen??!
Ist es einfach nur "unschön" printf und cout in einer app zu verwenden. oder hat das Nachteile? (speed, sicherheit, what ever)

Der Befehl "getch();" mit dem man die Anwendung dazu bringt auf eine Tastatureingabe zu warten (bis es weitergeht) führt bei mir zum selben fehler:
Quote:
`getch' undeclared (first use this function)
warum denn das schon wieder?? hab ich mich vertippt?
gibts da ne andere Funktion in C++???

vielen dank

//EDIT//
POST 222!^^ jetz geb ich einen aus :alki: :drink:
reijin is offline  
Old 12/31/2006, 15:41   #9
 
sd333221's Avatar
 
elite*gold: 9
Join Date: Dec 2005
Posts: 621
Received Thanks: 365
Code:
ist es bei Windows-applikationen anders?
Da brauchst du "cout" nicht (cout = ConsoleOutput oder so ), außerdem brauchst du da
das ganze mit dem std nicht, das ist ne Ausnahme und nur bei diesen Konsolensachen
wie: cout, cin, endl usw.

Code:
Ist es einfach nur &#34;unschön&#34; printf und cout in einer app zu verwenden.
Ja ich wüsste da keine Nachteile ist nur eben ein Vermischen von C++ und C


Code:
Der Befehl &#34;getch&#40;&#41;;&#34; mit dem man die Anwendung dazu bringt auf eine Tastatureingabe zu warten &#40;bis es weitergeht&#41; führt bei mir zum selben fehle
Du hasst den header wo die Funktion deklariert ist warscheinlich nicht eingebunden :-&
probier mal an den Anfang
Code:
#include &#60;conio.h>
zu setzen ;-)

Code:
gibts da ne andere Funktion in C++???
Wenn du das brauchst um zu Verhindern dass dein Programm sich sofort wieder schließt
hat sich bei mir der Befehl
Code:
system&#40;&#34;pause&#34;&#41;;
Eingebürgert ;-)
Würde ich dir auch zu raten den zu benutzen ist einfach schöner da dann ausgegeben wird
"drücken sie eine taste um die Applikation zu beenden" oder so :P

Guten Rutsch @ alle
sd333221 is offline  
Old 12/31/2006, 16:11   #10
 
reijin's Avatar
 
elite*gold: 20
Join Date: Feb 2006
Posts: 3,174
Received Thanks: 1,153
ok, super antwort (mal wieder)
wie sieht das denn mit "sprung marken" aus?
also einen Punkt setzten zu dem gespungen werden kann - wie geht das?
aus BASIC kenne ich das so:
Code:
&#58;sprung
Print &#34;hallo!&#34;
Print &#34;nochmal?&#34;
input antwort
if antowort = 1 then goto sprung
else exit
geht bestimmt auch in C++ nur wie?
auch mit Goto? (ist bestimmt etwas "unschön" oder? XD )

Oder isses besser da ne neue Funktion aufzusetzten??

danke nochmal, dass du dir soviel Ziet nimmst meine Fragen zu beantworten

Gruß, reijin

PS.: kann ich dich irgendwie noch anders Kontaktieren? Messanger oder so?
reijin is offline  
Old 12/31/2006, 17:58   #11
 
sd333221's Avatar
 
elite*gold: 9
Join Date: Dec 2005
Posts: 621
Received Thanks: 365
Quote:

wie sieht das denn mit "sprung marken" aus?
also einen Punkt setzten zu dem gespungen werden kann - wie geht das?
Damit kann C++ leider nicht dienen :-D
"Sprung Marken" wurden durch Funktionen ersetzt, wenn man strukturiert programmiert
braucht man die eigentlich auch nicht :-)

Es gibt nur die möglichkeit mit asm ein Jump in deine Applikation einzubauen, aber ich
glaub das sprengt hier den Rahmen


Quote:
PS.: kann ich dich irgendwie noch anders Kontaktieren? Messanger oder so?
Bin eigentlich kaum per Messenger oder so erreichbar, kann jetzt aber mal Miranda (ICQ) starten,
191890952
sd333221 is offline  
Old 12/31/2006, 18:11   #12
 
sd333221's Avatar
 
elite*gold: 9
Join Date: Dec 2005
Posts: 621
Received Thanks: 365
Sorry ich muss mich doch noch einmal berichtigen

Es geht doch noch wie gehabt:
Code:
  #include &#60;iostream>
  using namespace std;

  int main&#40;&#41;
  {
   int i=0;

   Schleife&#58; //dies ist ein Label
   cout&#60;&#60;i&#60;&#60;endl;
   goto Schleife; //Sprung zum Label &#40;Achtung hier Endlosschleife &#58;D&#41;

  }
Ich meine aber mal iergendwo gelesen zu haben dass es nichtmehr ginge
naja

Aber ich hab das in meiner Programmierlaufbahn von mehreren Jahren noch nie in
einem Programm gesehn, also würde ich dir davon abraten dir das anzugewöhnen
sd333221 is offline  
Old 01/01/2007, 22:01   #13
 
elite*gold: 0
Join Date: May 2005
Posts: 232
Received Thanks: 52
die einzige stelle an der man sprungmarken gescheit brauchen kann ist inline asm
emjay is offline  
Reply


Similar Threads Similar Threads
[AUFRUF] An alle, die von "[Aimee]", "Blck-Sellerx" & ".Ava" betrogen worden sind!
03/23/2010 - Last Chaos - 34 Replies
Hallo libe ehrlichen Member von e*PvPers! Im LastChaos und Metin Bereich im TBM Forum soll ".Ava" mehrere Leute abgezogen haben. Nun kommen aber plötzlich Gegenstimmen in der iTrader Bewertung die positiv ausfallen von "Black-SellerX" und "" bei genauerem Hinsehen bemerkt man, dass diese 3 Forenuser sich gegenseitig immer wieder positiv bewerten, dennnoch werden diese von vielen Usern negativ bewertet. Von "" wurde ich selber betrogen, daher mein Interesse. Deshalb vermute ich, dass hinter...



All times are GMT +1. The time now is 16:20.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.