getchar() und using namespace std und Visual Studio
-
Hallo mal wieder!
Danke gleich im Voraus!Warum steht in kaum einem Buch / Programm/ Tutorial getchar() ???
Jedes Programm, dass in so einem Buch/Tutorial angegeben ist würde sich öffnen und sofort wieder schließen. Ich füge dann immer getchar() hinzu.
Oder machen diese Programmierer da etwas ganz anders und ersparen sich so das getchar()???Ist using namespace std zu empfehlen? Wenn nicht, warum?
Für mich ist es wie das gelobte Land wo Milch und Honig fließt.
Man erspart sich doch viel Schreibarbeit bei gleichem Effekt.Ist Visual Studio C++ zu empfehlen gegenüber dem von mir gebräuchlichen Dev C++?
Die Express Version ist ja glaube ich kostenfrei, oder?
Bietet diese Version genügend Möglichkeit zu programmieren da es ja anscheinend wie gesagt nur eine abgespeckte Version ist.DANKE
Gruß
Michael
-
getchar ist u.U. nicht ausreichend, nämlich dann, wenn noch Zeichen im Eingabepuffer stehen. Daher musst du vor getchar den Eingabepuffer leeren (dazu gab es schon eine Menge Threads hier, einfach mal die SuFu nutzen). Und wenn du über eine Konsole startest, brauchst du sowas nicht.
-
Das Thema steht auch in den FAQ
http://www.c-plusplus.net/forum/111042Es ist sehr zu empfehlen einen anderen Compiler als Dev C++ zu benutzen. Das VC++ Express ist unter Windows gerade für Einsteiger sehr zu empfehlen. Es hat einen exzellenten Debugger der einfach zubedienen ist und mit dem Anfänger gut selber verstehen können was sie falsch machen, bevor sie sich ans Forum wenden

-
Dann würd ich euch viel Arbeit ersparen

DANKE
Das mit der Suchfunktion ist eine gute Idee.
Das mit getchar hab ich nicht gefunden, aber da habe ich vermutlich nicht gut genug gesucht.
Das mit Visual C++ fand ich schon, aber ich wollte einfach mal eine aktuelle Meinung haben und ob die Express Version ausreicht wissen.
-
Aber zu dem: using namespace std findet man irgendwie nichts was meine Frage behandelt.
Gruß
Michael
-
MichaelMAS schrieb:
Aber zu dem: using namespace std findet man irgendwie nichts was meine Frage behandelt.
Gruß
Michael
Du darfst so viele using namespaces verwenden wie du willst, du solltest dir nur im Klaren sein, was das bedeuten kann. Und tu dir und anderen Leuten einen Gefallen und schreib es nie in Header. Denn dann liegt die Entscheidung, ob man ein using namespace haben will nicht mehr bei dem der den Header benutzt, sondern bei dem der den Header geschrieben hat.
-
Gut, dann lass mich deine Suchmaschine sein!

Zu using namespace std findet man hier öfter mal Diskussionen/Erläuterungen:
http://www.c-plusplus.net/forum/p992811
http://www.c-plusplus.net/forum/169511Zu deiner IDE:
Es ist weiterhin aktuell, dass Dev-C++ veraltet ist.

Zu getchar/Verhindern des Schließens der Konsole:
http://www.c-plusplus.net/forum/192582
http://www.c-plusplus.net/forum/39349
-
_matze du bist toll!
Ich werde dich (sowie bereits dutzende andere) in mein Nachgebet einschließen!
-
MichaelMAS schrieb:
_matze du bist toll!
Ich werde dich (sowie bereits dutzende andere) in mein Nachgebet einschließen!Wann kommt denn bei dir das Nachgebet? Kommt das direkt nach dem Nachtgebet? Oder nach dem Mittagessen? Nach Feierabend? Hmm....

-
Sorry, natürlich Nachtgebet!

-
MichaelMAS schrieb:
Hallo mal wieder!
Danke gleich im Voraus!Warum steht in kaum einem Buch / Programm/ Tutorial getchar() ???
Jedes Programm, dass in so einem Buch/Tutorial angegeben ist würde sich öffnen und sofort wieder schließen. Ich füge dann immer getchar() hinzu.
Oder machen diese Programmierer da etwas ganz anders und ersparen sich so das getchar()???Also wenn ich CodeBlocks nutze, dann benötige ich es nie, weil dort die Konsole offen bleibt. Wenn ich mit VS was debugge brauch ichs eigentlich auch nie, und anderweitig starte ich die Programme meist von der Konsole, sprich brauch es auch nicht. Wenn ich es doch mal benötige, dann nehme ich meistens cin.get() und leere vorher den Puffer bzw ignoriere was noch drinnen steht.
MichaelMAS schrieb:
Ist using namespace std zu empfehlen? Wenn nicht, warum?
Für mich ist es wie das gelobte Land wo Milch und Honig fließt.
Man erspart sich doch viel Schreibarbeit bei gleichem Effekt.Wie schon gesagt wurde, in Header-Dateien bitte immer vermeiden. Ansonsnten in .cpp Dateien kannst du es eigentlich im Normalfall nach belieben verwenden. Schreibst du dir jedoch ne Funktion, deren Namen schon in der STL genutzt wird, haste ein Problem:D Zum Beispiel die Funktion swap, wenn du dir diese schreibst, und nicht weißt dass sie in der STL ebenso vorhanden ist und du zudem ein using namespace std hast, dann wirst du dich erst mal wundern

Ich nutze daher oft auch die using-Direktive ala using std::cin;Lg freeG