Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 01:20

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

Advertisement



Anfänger Problem

Discussion on Anfänger Problem within the C/C++ forum part of the Coders Den category.

Reply
 
Old   #1
 
_Roman_'s Avatar
 
elite*gold: 0
Join Date: May 2010
Posts: 1,620
Received Thanks: 237
Anfänger Problem

Hallo liebe Community,

unzwar habe ich heute das Buch C++ Lernen und Professionell anwenden bekommen. Abgesehen davon, dass mein Laptop die dabeiliegende CD nicht liest, hab ich mir einfach MC Visual C++ 2010 Express runtergeladen. Nun habe ich mit einem einfachen Programm gestartet. Einfach ein leeres Projekt erstellt und dazu natürlich eine Quelldatei. Dann gab ich folgendes ein.

#include <iostream>
using namespace std;

int main()
{
cout << "Hallo" << endl;
return 0;
}

Ganz einfach... Aber das Problem ist, dass es nicht so ganz funktioniert. Unzwar schließt sich das Programm direkt nach dem Debuggen wieder.
Noch eine Frage nebenbei.
Warum haben soviele was gegen:
using namespace std; ?
Das vereinfacht alles doch.. Dann muss man doch nicht immer ::std schreiben
_Roman_ is offline  
Old 02/03/2012, 14:58   #2
 
elite*gold: 0
Join Date: Mar 2010
Posts: 173
Received Thanks: 80
Du hast warscheinlich nicht aufgepasst...
bei
Quote:
return 0;
schließt sich das Programm sofort, um das zu verhindern werde ich anstatt return 0; einen getchar(); schreiben, damit das Programm sich nicht sofort schließt.

Quote:
using namespace std;
benutze ich und habe nichts dagegen :-)
Cascraft is offline  
Thanks
1 User
Old 02/03/2012, 14:58   #3
 
elite*gold: 50
Join Date: Mar 2010
Posts: 1,373
Received Thanks: 521
Versuchs mal hiermit:
Code:
int main()
{
cout << "Hallo" << endl;
cin.get();
return 0;
}
Das Programm sollte nun solange warten bis du die Enter-Taste drückst.

Quote:
Dann muss man doch nicht immer ::std schreiben
std::xy nicht xy::std
jacky919 is offline  
Thanks
1 User
Old 02/03/2012, 15:08   #4
 
_Roman_'s Avatar
 
elite*gold: 0
Join Date: May 2010
Posts: 1,620
Received Thanks: 237
Danke erstmal an beide und sry für den Schreibfehler D Hatte keine Lust zu editieren. Habs mal probiert und siehe da, es klappt.
Sry Cascraft, deine Methode hat bei mir leider nicht geklappt, hab eigentlich schon alles mögliche probiert, aber naja... auch egal.
Danke nochmal, wenn ich Fragen hab, werde ich hier posten.
_Roman_ is offline  
Old 02/03/2012, 15:20   #5
 
elite*gold: 50
Join Date: Mar 2010
Posts: 1,373
Received Thanks: 521
Code:
#include <iostream>
#include <stdio.h>

using namespace std;

int main()
{
	cout << "Hello World!" << endl;

	getchar();

	return 0;
}
Würde wieder warten bis Enter gedrückt wird, hätte also denselben Effekt. Bei getchar() handelt es sich aber um eine C Funktion, weshalb die Inkludierung der Headerdatei stdio.h von Nöten ist.
jacky919 is offline  
Thanks
1 User
Old 02/03/2012, 18:07   #6
 
.SkyneT.'s Avatar
 
elite*gold: 273
Join Date: Sep 2010
Posts: 1,831
Received Thanks: 786
Noch etwas, der Vollständigkeit halber, getchar() / cin.get() wartet nicht nur auf
die Enter Taste, sondern auch auf alle anderen.
.SkyneT. is offline  
Old 02/03/2012, 19:12   #7
 
elite*gold: 5
Join Date: Sep 2006
Posts: 385
Received Thanks: 218
Quote:
Warum haben soviele was gegen:
using namespace std; ?
Im globalen namespace ist das imho ein no-go!
Ich persönlich mag es nicht, da es dir den globalen namespace regelrecht zumüllt, wenn du ersteinmal mit der ganzen STL arbeitest. "stack", "vector", "map", u.v.m., alles Namen, die du nicht mehr nutzen kannst.
Im worst case kann es dazu kommen, dass der Compiler bestimmte Symbole nicht auflösen kann und somit das Programm nicht erstellt wird.
So Tippe ich lieber 5 Zeichen mehr auf der Tastatur, was bei mir keine halbe Sekunde dauert, als dass ich am Ende auch nur eine unnötige Minute Fehler behebe, die von vorne herein unnötig waren.

Ratsamer ist es, die einzelnen Klassen, die du nutzen möchtest, in den entsprechenden Funktionen über "using <Namespace>::<Klassenname>;" zu nutzen.
Bzw. bin ich inzwischen soweit, dass ich mir ein Makro geschrieben habe, um das Verhalten von scoped namespaces aus C# zu erhalten, was den Quellcode (imho) nochmal ein gutes Stück leserlicher gestaltet. Aber so weit musst du nicht gehen!

Nochmal zur Verdeutlichung:





Quote:
getchar();
Wer mit C++ arbeitet, der sollte auch keine (bzw. so wenig wie möglich; bzw. nur in bestimmten Szenarien) C-Funktionen nutzen. Die STL wurde ja nicht zum Spaß eingeführt!
std::cin.get(); hat die gleiche Funktionalität wie getchar. Gibt man mehr als nur ein Return ein, muss man den Eingabestream flushen, da dir sonst das nächste std::cin.get() scheinbar einfach übersprungen wird.
Ich persönlich favorisiere hier den string Header ebenfalls zu inkludieren und dann über std::getline wirklich eine Zeile einzulesen.
Code:
std::getline(std::cin, std::string()); //ließt sauber eine Zeile ein!
Könnte man zwar als unsauberen workarround bezeichnen (mimimi, ungenutzter Speicher wird reserviert), aber es erfüllt seinen Zweck hervorragend!


So far,
Night
Nightblizard is offline  
Old 02/03/2012, 23:06   #8
 
xNopex's Avatar
 
elite*gold: 0
Join Date: May 2009
Posts: 827
Received Thanks: 471
Quote:
weshalb die Inkludierung der Headerdatei stdio.h von Nöten ist.
Ne cstdio....
xNopex is offline  
Old 02/03/2012, 23:32   #9
 
elite*gold: 50
Join Date: Mar 2010
Posts: 1,373
Received Thanks: 521
Quote:
Originally Posted by xNopex View Post
Ne cstdio....
Hmmm...
jacky919 is offline  
Old 02/04/2012, 00:47   #10
 
elite*gold: 42
Join Date: Jun 2008
Posts: 5,426
Received Thanks: 1,888
Quote:
Originally Posted by jacky919 View Post
Hmmm...
MoepMeep is offline  
Old 02/04/2012, 00:51   #11
 
elite*gold: 50
Join Date: Mar 2010
Posts: 1,373
Received Thanks: 521
Was war dann falsch an meiner Formulierung?
Die Headerdatei heißt doch "stdio.h"
jacky919 is offline  
Old 02/04/2012, 01:14   #12
 
elite*gold: 42
Join Date: Jun 2008
Posts: 5,426
Received Thanks: 1,888
Quote:
Input and Output operations can also be performed in C++ using the C Standard Input and Output Library (cstdio, known as stdio.h in the C language)
.
MoepMeep is offline  
Old 02/09/2012, 23:40   #13
 
Seelenmeister's Avatar
 
elite*gold: 0
Join Date: Oct 2010
Posts: 94
Received Thanks: 11
Also erstmal gewöhn dir an eine main Funktion wird Standardtechnisch immer als void geschrieben. Das mit dem sofortigen beenden ist nur so ein ding mit dem 2010er ..... !
Naja also oke schauen wir mal was wir tun können. Wichtig ist es wenn du das Programm startest das du bein einrichten ein komplett leeres Dokument wählst ! Dannach legst du eine main datei an da du für solche einfachen programme keine Funktionen oder sonstwas in header auslagern musst !

Das sollte da so aussehen !

#include<iostream>
using namespace std;

void main(){

cout<<"Hallo"<<endl;
system("PASUE"); // Das der Debugger nich gleich wieder zumacht !
}

Edit : Wenn du lust hast Grundtechnisch ein bisschen was zu lernen kannste dich gerne melden
Seelenmeister is offline  
Old 02/10/2012, 03:28   #14
 
elite*gold: 42
Join Date: Jun 2008
Posts: 5,426
Received Thanks: 1,888
Quote:
Originally Posted by Seelenmeister View Post
Also erstmal gewöhn dir an eine main Funktion wird Standardtechnisch immer als void geschrieben. Das mit dem sofortigen beenden ist nur so ein ding mit dem 2010er ..... !
Naja also oke schauen wir mal was wir tun können. Wichtig ist es wenn du das Programm startest das du bein einrichten ein komplett leeres Dokument wählst ! Dannach legst du eine main datei an da du für solche einfachen programme keine Funktionen oder sonstwas in header auslagern musst !

Das sollte da so aussehen !

#include<iostream>
using namespace std;

void main(){

cout<<"Hallo"<<endl;
system("PASUE"); // Das der Debugger nich gleich wieder zumacht !
}

Edit : Wenn du lust hast Grundtechnisch ein bisschen was zu lernen kannste dich gerne melden
Diese Person ist nicht ernstzunehmen, einfach ignorieren!
MoepMeep is offline  
Thanks
4 Users
Old 02/10/2012, 03:51   #15
 
elite*gold: 0
Join Date: Aug 2007
Posts: 4,043
Received Thanks: 2,551
Quote:
system("PASUE"); // Das der Debugger nich gleich wieder zumacht !
Edit : Wenn du lust hast Grundtechnisch ein bisschen was zu lernen kannste dich gerne melden
Quote:
system("PASUE"); // Das der Debugger nich gleich wieder zumacht !
Du solltest "grundtechnisch" etwas lernen.
Rainvair is offline  
Reply


Similar Threads Similar Threads
Problem(Anfänger)
11/08/2010 - Minecraft - 6 Replies
Ich hab ein Problem und zwar: Ich hab beim Singelplayer angefangen und versuche gerade nen Baum mit den Händen zu klopen damit ich holz bekomme aber ich hau ja da 5 minuten drauf und es passiert nichts ich bekommm kein holz Was ist das los?
Auto It Problem ( Anfänger )
11/02/2010 - AutoIt - 4 Replies
Hey Leute, ich arbeite erst seit heute mit AutoIt weil ich ein paar Bots für Last Chaos machen wollte. Dazu habe ich mir Forsaken sein Tutorial angeschaut. Leider ist es Englisch und ich habe mir nur das Tutorial durchgelesen weil ich die Deutschen irgentwie nciht checke. Bei seinem TuT hab ich genau das getan das ich so ein Fenster von Auto it bekommen wie bei Forsaken. http://img837.imageshack.us/img837/9162/14m6f61.p ng
[Anfänger~C++]Problem
10/19/2010 - C/C++ - 3 Replies
In meinen Buch bin ich jetzt auf Funktionsdefinierung/parameterübergabe gestoßen,ich verstehe aber das mit den parameter nicht zum Beispiel steht in meinen Buch: 1.Definieren Sie für die Funktion einen Parameter vom Typ string void gruss(string name) { cout<<"Hallo Programmierer!" <<endl; } 2.Verwenden Sie den Parameter im Anweisungsblock der Funktion void gruss(string name) { cout<<"hallo " <<name <<"!" <<endl;
[C#] Anfänger Problem
03/30/2010 - .NET Languages - 8 Replies
Hey, Ich hab am Freitag mit C# angefangen und gleich auch mich ein bisschen eingeübt. Jetzt habe ich ein paar kleine Fragen: Ich habe eine GUI mit diesen Steuerelementen: http://picbanana.com/images/testrmr.jpg Wenn ich jetzt z.B. in die erste Textbox "Test22" schreibe und in die 2. "Test33" sowie auch in die 3. "Test44" will ich das per Tastendruck, der folgende Bind ausgeführt wird und dies auch in allen Fenstern. Die Buttons dienen dazu, dass man einen individuellen HotKey für den...
Autoit Problem *Anfänger*
07/26/2009 - AutoIt - 4 Replies
Hi Leute, ich habe ein problem ^^ Ich möchte eine Einfache Form erstellen mit einem Button . So weit so gut..habs halt mit Koda gemacht und so sieht es bis jetz aus Schön schön, nur ich möchte jetz, dass wenn ich auf den Button Klicke er den Pc herunterfährt Ich habe es so ausprobiert Mir fiel nichts anderen ein als



All times are GMT +2. The time now is 01:20.


Powered by vBulletin®
Copyright ©2000 - 2024, 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 ©2024 elitepvpers All Rights Reserved.