Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
alfonsospringer
Anmeldungsdatum: 27.04.2006 Beiträge: 445
|
Verfasst am: 24.02.2007, 14:04 Titel: C++ sleep frage |
|
|
Ich versuche im Moment mir ein bisschen c++ beizubringen und habe eine Frage (irgendwie klar)
Gibt es einen Befehl mit dem ich (wie mit sleep) auf eine Tastatureingabe warten kann, damit das Programm nicht gleich terminiert?
Im Tutorial steht cin.get(); aber das klappt nicht immer
ZB hier:
Code: |
#include<iostream>
using namespace std;
int main()
{
int basis;
int exponent;
int ergebnis;
cout<<"Basis: ";
cin>>basis;
cout<<"Exponent: ";
cin>>exponent;
for (int i=1; i < exponent; i+=1)
{
ergebnis=ergebnis*ergebnis;
}
cout <<basis<<" hoch "<<exponent<<" gleich " <<ergebnis;
cin.get();
}
|
Was ist falsch? Das Programm läuft, doch schliesst sich das Fenster, bevor man die Endausgabe lesen kann[/code]
ALS COMPILER VERWENDE ICH Bloodshed DEV C++ v4.9.9.2 _________________ Die Antworten zu fast allen Fragen des Lebens findest du entweder im MonsterFAQ oder der Befehlsreferenz - Und wenn du gar nicht mehr weiter weisst ? -> Wikipedia
ALLE RECHTSCHREIBFEHLER DIE ICH MACHE SIND BEABSICHTIGT, DAMIT DIE LEUTE, DIE SPAß DARAN HABEN SOLCHE ZU FINDEN, ETWAS ZU TUN HABEN |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 24.02.2007, 14:51 Titel: |
|
|
Hallo.
Erstmal die "berichtigte" Version:
[code]
#include<iostream>
using namespace std;
int main()
{
int basis, exponent, ergebnis;
cout<<"Basis: ";
cin>>basis;
cout<<"Exponent: ";
cin>>exponent;
for (int i=1; i < exponent; i+=1)
{
ergebnis=ergebnis*ergebnis;
}
cout <<basis<<" hoch "<<exponent<<" gleich " <<ergebnis;
system("pause > nil");
return 0;
}
[/quote]
Da ich eher C verwende, hab ich jetzt nur den Workaround mit system.
Btw, die Bloodshed Dev-Cpp ist kein Compiler. Als Compiler wird MinGW verwendet.
Dann hab ich mal die Variablendeklaration zusammengefasst und der main-Funktion einen Rückgabewert verpasst (nicht vergessen!).
Greets,
Mao _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
Manuel

Anmeldungsdatum: 23.10.2004 Beiträge: 1271 Wohnort: Bayern
|
Verfasst am: 24.02.2007, 15:21 Titel: |
|
|
Zitat: | system("pause > nil"); | Müsste es nicht Zitat: | system("pause > nul"); | heißen?
Was cin.get angeht: Den Befehl kenne ich leider noch nicht, bin selber noch ein blutiger Anfänger in C/C++...
EDIT: Ups, sorry... Anscheinend funktionieren beide Befehle, das wusste ich nicht. Sorry 4 Trash^^...
EDIT²: Ok, mit "nil" funktioniert es zwar auch, aber dann leitet er die Ausgabe in eine Textdatei namens "nil", bei "nul" hingegen leitet er das Zeug nirgendwo hin... _________________ DL Walk (Denkspiel) | DL Malek (Denkspiel) | DL Warrior (ASCII-Adventure) | DL Sokodos (Sokoban-Klon)
---
www.astorek.de.vu |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 24.02.2007, 15:46 Titel: Re: C++ sleep frage |
|
|
alfonsospringer hat Folgendes geschrieben: | Gibt es einen Befehl mit dem ich (wie mit sleep) auf eine Tastatureingabe warten kann, damit das Programm nicht gleich terminiert? |
_________________ http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 24.02.2007, 16:12 Titel: |
|
|
Getch ist imho aber eine reine C-Funktion.
cin.get() hingegen die C++ Funktion.
@Manuel:
Jo, sry, komme neuerdings mit nul (NULL als Konstante) und nil (eine Art NULL bei Delphi) durcheinander.
/edit: Schreibfehler berichtigt... _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
Flo aka kleiner_hacker
Anmeldungsdatum: 23.06.2006 Beiträge: 1210
|
Verfasst am: 24.02.2007, 19:30 Titel: |
|
|
du bist sooo böse
ertränkst die arme pause im nil  _________________ MFG
Flo
Satoru Iwata: Wer Spaß am Spielen hat, fragt nicht nach Grafik.
zum korrekten Verstaendnis meiner Beitraege ist die regelmaessige Wartung des Ironiedetektors unerlaesslich. |
|
Nach oben |
|
 |
alfonsospringer
Anmeldungsdatum: 27.04.2006 Beiträge: 445
|
Verfasst am: 24.02.2007, 20:47 Titel: |
|
|
villeicht kennt ja wer eine schöne c++ befehlsreferen außer der msdn...? _________________ Die Antworten zu fast allen Fragen des Lebens findest du entweder im MonsterFAQ oder der Befehlsreferenz - Und wenn du gar nicht mehr weiter weisst ? -> Wikipedia
ALLE RECHTSCHREIBFEHLER DIE ICH MACHE SIND BEABSICHTIGT, DAMIT DIE LEUTE, DIE SPAß DARAN HABEN SOLCHE ZU FINDEN, ETWAS ZU TUN HABEN |
|
Nach oben |
|
 |
Lutz Ifer Grillmeister

Anmeldungsdatum: 23.09.2005 Beiträge: 555
|
Verfasst am: 24.02.2007, 21:06 Titel: |
|
|
auf die gefahr hin, mal wieder in den ruf zu kommen, nur diese eine antwort zu kennen:
GOOGLE!
MtG
Lutz Ifer _________________ Wahnsinn ist nur die Antwort einer gesunden Psyche auf eine kranke Gesellschaft. |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 25.02.2007, 10:02 Titel: |
|
|
Mao hat Folgendes geschrieben: | Getch ist imho aber eine reine C-Funktion. |
Ah, danke für den Hinweiss.
Ich könnte meinen Lehrer mal wieder ...
Das was der Esel C++ Programmierung nennt, hat mehr mit Abschreiben von miserablen C Programmen zutun als sonst was ...
Schon die Char Arrays als "String Ersatz" und das fehlen von Else If haben mich stüzig gemacht, dass das was er uns bei bringt nicht viel mit C++ zu tun hat ... _________________ http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight |
|
Nach oben |
|
 |
alfonsospringer
Anmeldungsdatum: 27.04.2006 Beiträge: 445
|
Verfasst am: 25.02.2007, 12:03 Titel: |
|
|
Ich verstehe die Welt nicht mehr. alle Tutorials, die ich zu c++ finde erklären was anderes, und die Hälfte vom dort angegebenen code funktioniert niche einmal
Man nehme als Besipiel mal das bekannte c++ in 21 Tagen:
Man kopiere das Programm ins Editorfenster von devc++ , entferne die Zeilennummern und drücke compile and run - schon wird man mit Fehlern überschüttet.
Kann mir jemand villeicht mal einen Tip geben, womit (compiler, editor, tutorial) ich neu anfangen könnte?
JA ICH HABE GEGOOGELT  _________________ Die Antworten zu fast allen Fragen des Lebens findest du entweder im MonsterFAQ oder der Befehlsreferenz - Und wenn du gar nicht mehr weiter weisst ? -> Wikipedia
ALLE RECHTSCHREIBFEHLER DIE ICH MACHE SIND BEABSICHTIGT, DAMIT DIE LEUTE, DIE SPAß DARAN HABEN SOLCHE ZU FINDEN, ETWAS ZU TUN HABEN |
|
Nach oben |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 25.02.2007, 12:07 Titel: |
|
|
Also ich kann dir das Buch "C++ in 40 Lektionen" von Kris Jamsa vom Elektor-Verlag empfehlen,
das ist ganz in Ordnung. Kann man glaube ich bei www.reichelt.de bestellen
Viel Glück noch,
jb _________________ Elektronik und Programmieren |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 25.02.2007, 12:55 Titel: |
|
|
Lutz Ifer hat Folgendes geschrieben: | auf die gefahr hin, mal wieder in den ruf zu kommen, nur diese eine antwort zu kennen:
GOOGLE!
MtG
Lutz Ifer | ..ich find, das ist 'ne teuflisch gute Idee
http://www.onlinetutorials.de/cpp-index.htm
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
 |
helium

Anmeldungsdatum: 10.09.2004 Beiträge: 397 Wohnort: Leverkusen
|
Verfasst am: 25.02.2007, 13:38 Titel: |
|
|
Mao hat Folgendes geschrieben: | Dann hab ich mal die Variablendeklaration zusammengefasst und der main-Funktion einen Rückgabewert verpasst (nicht vergessen!). |
Da gibts ne bekloppte Ausnahmereglung. Die Funktion main braucht kein return, obwohl ihr Rückgabetyp int ist. Dann wird implizit 0 angenommen.
Zitat: | villeicht kennt ja wer eine schöne c++ befehlsreferen außer der msdn...? |
http://www.cppreference.com/index.html
Zitat: | Das was der Esel C++ Programmierung nennt, hat mehr mit Abschreiben von miserablen C Programmen zutun als sonst was ...
Schon die Char Arrays als "String Ersatz" und das fehlen von Else If haben mich stüzig gemacht, dass das was er uns bei bringt nicht viel mit C++ zu tun hat ... |
char arrays als Strings sollte man auch kennen, auch wenn man natürlich std::string verwendet.
Ein "else if" gibt es nicht wirklich. Damit hat er recht. Es gibt ein "if" und ein "else". In den else-zweig kann man natürlich wiederum ein if reinpacken.
Code: |
if (foo) {
...
}
else {
if (bar) {
...
}
}
|
Statt einem {...}-Block kann bekanntlich auch eine einzelne Anweisung stehen. In dem else-Zweig des letzten Beispiels steht nur ein einzelnes if als Anweisung. Hier ließe sich das ganze also anwenden. Umgesetzt sieht das dann so aus:
Code: |
if (foo) {
...
}
else
if (bar) {
...
}
|
Formatierungen spielen bekanntlich in C++ (und auch C) keine Rolle (aus sicht des Compilers!!!). Also etwas anders Formatiert:
Code: |
if (foo) {
...
}
else if (bar) {
...
}
|
Zitat: | Kann mir jemand villeicht mal einen Tip geben, womit (compiler, editor, tutorial) ich neu anfangen könnte? |
Der Compiler ist ok. Das ist das Windows-Port vom gcc, den man aus der Unix-Welt kennt. Als kostenlose IDE könntest du CodeBlocks verwenden (verwendet normalerweise den selben Compiler).
Als Tutorial kannst du Volkards Tutorial nehmen.
---
Woran man ganz schnell erkennt, das es ein schlechtes oder zumindest stark veraltetes Tutorial ist ist, wenn man statt "#include <iostream>" "#include <iostream.h>" findet, oder wenn man "void main" statt "int main" sieht. _________________ Bevor Sie aufhören sich körperlich zu betätigen sollten Sie ihren Doktor befragen. Körperliche Inaktivität ist abnormal und gefährlich für Ihre Gesundheit.
Zuletzt bearbeitet von helium am 26.02.2007, 14:17, insgesamt 2-mal bearbeitet |
|
Nach oben |
|
 |
alfonsospringer
Anmeldungsdatum: 27.04.2006 Beiträge: 445
|
Verfasst am: 25.02.2007, 14:01 Titel: |
|
|
DANKE - habe ich schonmal erwähnt, dass dies hier einfach eine tolle Community ist ?
dim antwort as string
input "Antwort (Ja/nein)", antwort
If antwort = "nein" then
Print "Dies ist eine tolle Community! "
else
Print "Dan ist ja gut"
End if
 _________________ Die Antworten zu fast allen Fragen des Lebens findest du entweder im MonsterFAQ oder der Befehlsreferenz - Und wenn du gar nicht mehr weiter weisst ? -> Wikipedia
ALLE RECHTSCHREIBFEHLER DIE ICH MACHE SIND BEABSICHTIGT, DAMIT DIE LEUTE, DIE SPAß DARAN HABEN SOLCHE ZU FINDEN, ETWAS ZU TUN HABEN |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 25.02.2007, 15:06 Titel: |
|
|
@helium:
Hab es bisher nur so gelernt, merk mir's aber.
@alfonsospringer:
Wenn du externe Bibliotheken mittels Header-File einbindest, musst du dem Linker auch mitteilen, dass du dise Bibliothek verwendest.
Das geht unter Dev-Cpp relativ leicht:
Wir gehen hier mal davon aus, dass du Winsock einbinden willst. Schreibst ganz normal
Code: |
include "winsock.h"
|
Dann gehst du unter "Project"->"Project Options"->"Parameters"->"Linker"->"Add Library or Object" und suchst dir dann im Dev-Cpp-Unterpfad "lib" die Bibliothek "libwsock32" raus.
Das wäre zum Beispiel gegen das Problem "[Linker error] undefined reference 'XXXXXX@8/16'".
Bei Visual-C(++) ist das ein bisschen leichter und das wird halt auch sehr oft verwendet. _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 27.02.2007, 19:31 Titel: |
|
|
helium hat Folgendes geschrieben: | char arrays als Strings sollte man auch kennen, auch wenn man natürlich std::string verwendet.
Ein "else if" gibt es nicht wirklich. Damit hat er recht. Es gibt ein "if" und ein "else". In den else-zweig kann man natürlich wiederum ein if reinpacken. |
Interresante Ableitung, danke.
Trotzdem denke ich, das in ein Brauchbares C++ Else If und String erwähnt sein sollten.
jb hat Folgendes geschrieben: | Also ich kann dir das Buch "C++ in 40 Lektionen" von Kris Jamsa vom Elektor-Verlag empfehlen,
das ist ganz in Ordnung. |
Im Elektor Verlag gibt es auch ein C++ Buch .
Guter Hinweiss, das Magazin Elektor ist ja sehr gut und darum ... _________________ http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight |
|
Nach oben |
|
 |
alfonsospringer
Anmeldungsdatum: 27.04.2006 Beiträge: 445
|
Verfasst am: 27.02.2007, 23:45 Titel: |
|
|
Ich glaube mit Elektronikmagazinen kann ich leider noch nichts anfangen, in dem Bereich bin ich ein absoluter Anfänger (man lernt ja in Physik nie die wichtigen Dinge (Schaltpläne lesen, etc.))
Zu http://www.cppreference.com/index.html
leider werden da so Sachen wie der Unterschied zwischen
system("pause") und sytem("pause > nul) nicht erklärt
allerdings ist volkards tut sehr gut, nur wird die definition neuer klasen nicht erklärt, sondern nur, was klassen im allgemeinen sind
http://www.volkard.de/vcppkold/klassen.html _________________ Die Antworten zu fast allen Fragen des Lebens findest du entweder im MonsterFAQ oder der Befehlsreferenz - Und wenn du gar nicht mehr weiter weisst ? -> Wikipedia
ALLE RECHTSCHREIBFEHLER DIE ICH MACHE SIND BEABSICHTIGT, DAMIT DIE LEUTE, DIE SPAß DARAN HABEN SOLCHE ZU FINDEN, ETWAS ZU TUN HABEN |
|
Nach oben |
|
 |
helium

Anmeldungsdatum: 10.09.2004 Beiträge: 397 Wohnort: Leverkusen
|
Verfasst am: 28.02.2007, 14:35 Titel: |
|
|
alfonsospringer hat Folgendes geschrieben: | leider werden da so Sachen wie der Unterschied zwischen
system("pause") und sytem("pause > nul) nicht erklärt |
Weil das nichts mit C++ zu tun hat. Dazu musst du dich mit deinem Betriebsystem auseinandersetzten. Gib mal in ein DOS-Fenster pause ein.
> leitet die Standardausgabe (die normalerwise der Bildschirm ist) an ein anders Gerät um. nul ist ein Gerät, das einfach gar nichts tut. Die Ausgabe verpufft quasi. _________________ Bevor Sie aufhören sich körperlich zu betätigen sollten Sie ihren Doktor befragen. Körperliche Inaktivität ist abnormal und gefährlich für Ihre Gesundheit. |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 28.02.2007, 16:16 Titel: |
|
|
Die system-Anweisung macht also nichts anderes, als externe Programme aufzurufen.
Und hat das mit der Bibliotheken-Einbindung dein Problem nun gelöst? Wär immer mal ganz "nett", zu hören, ob ein Tipp funktioniert hat.
Bei Volkards Tutorial wird imho auch geklärt, wie man Klassen definiert bzw. es wird so gearbeitet, dass man das selbst rauslesen kann.  _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
alfonsospringer
Anmeldungsdatum: 27.04.2006 Beiträge: 445
|
Verfasst am: 28.02.2007, 18:44 Titel: |
|
|
@mao: ja, dass hat geklappt & das mit den klassen hab ich jetzt auch kapiert thx
ist system() vergleichbar mit shell "" in q&fb? _________________ Die Antworten zu fast allen Fragen des Lebens findest du entweder im MonsterFAQ oder der Befehlsreferenz - Und wenn du gar nicht mehr weiter weisst ? -> Wikipedia
ALLE RECHTSCHREIBFEHLER DIE ICH MACHE SIND BEABSICHTIGT, DAMIT DIE LEUTE, DIE SPAß DARAN HABEN SOLCHE ZU FINDEN, ETWAS ZU TUN HABEN |
|
Nach oben |
|
 |
|