Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

C++ sleep frage
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Off-Topic-Forum
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
alfonsospringer



Anmeldungsdatum: 27.04.2006
Beiträge: 445

BeitragVerfasst am: 24.02.2007, 14:04    Titel: C++ sleep frage Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 24.02.2007, 14:51    Titel: Antworten mit Zitat

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. neutral
Btw, die Bloodshed Dev-Cpp ist kein Compiler. zwinkern 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
Benutzer-Profile anzeigen Private Nachricht senden
Manuel



Anmeldungsdatum: 23.10.2004
Beiträge: 1271
Wohnort: Bayern

BeitragVerfasst am: 24.02.2007, 15:21    Titel: Antworten mit Zitat

Zitat:
system("pause > nil");
Müsste es nicht
Zitat:
system("pause > nul");
heißen? grinsen

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 24.02.2007, 15:46    Titel: Re: C++ sleep frage Antworten mit Zitat

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?

Code:
getch();

_________________
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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 24.02.2007, 16:12    Titel: Antworten mit Zitat

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. verlegen

/edit: Schreibfehler berichtigt...
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Flo
aka kleiner_hacker


Anmeldungsdatum: 23.06.2006
Beiträge: 1210

BeitragVerfasst am: 24.02.2007, 19:30    Titel: Antworten mit Zitat

du bist sooo böse

ertränkst die arme pause im nil happy
_________________
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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
alfonsospringer



Anmeldungsdatum: 27.04.2006
Beiträge: 445

BeitragVerfasst am: 24.02.2007, 20:47    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
Lutz Ifer
Grillmeister


Anmeldungsdatum: 23.09.2005
Beiträge: 555

BeitragVerfasst am: 24.02.2007, 21:06    Titel: Antworten mit Zitat

auf die gefahr hin, mal wieder in den ruf zu kommen, nur diese eine antwort zu kennen:

GOOGLE!

MtG
Lutz böse Ifer
_________________
Wahnsinn ist nur die Antwort einer gesunden Psyche auf eine kranke Gesellschaft.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 25.02.2007, 10:02    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
alfonsospringer



Anmeldungsdatum: 27.04.2006
Beiträge: 445

BeitragVerfasst am: 25.02.2007, 12:03    Titel: Antworten mit Zitat

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 weinen
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 Kopf schütteln
_________________
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
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 25.02.2007, 12:07    Titel: Antworten mit Zitat

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 lächeln

Viel Glück noch,
jb
_________________
Elektronik und Programmieren
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 25.02.2007, 12:55    Titel: Antworten mit Zitat

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 böse Ifer
..ich find, das ist 'ne teuflisch gute Idee grinsen
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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
helium



Anmeldungsdatum: 10.09.2004
Beiträge: 397
Wohnort: Leverkusen

BeitragVerfasst am: 25.02.2007, 13:38    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
alfonsospringer



Anmeldungsdatum: 27.04.2006
Beiträge: 445

BeitragVerfasst am: 25.02.2007, 14:01    Titel: Antworten mit Zitat

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

grinsen
_________________
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
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 25.02.2007, 15:06    Titel: Antworten mit Zitat

@helium:
Hab es bisher nur so gelernt, merk mir's aber. Ja!

@alfonsospringer:
Wenn du externe Bibliotheken mittels Header-File einbindest, musst du dem Linker auch mitteilen, dass du dise Bibliothek verwendest. zwinkern
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. lächeln
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
Benutzer-Profile anzeigen Private Nachricht senden
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 27.02.2007, 19:31    Titel: Antworten mit Zitat

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 lächeln .
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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
alfonsospringer



Anmeldungsdatum: 27.04.2006
Beiträge: 445

BeitragVerfasst am: 27.02.2007, 23:45    Titel: Antworten mit Zitat

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.))
weinen
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
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
helium



Anmeldungsdatum: 10.09.2004
Beiträge: 397
Wohnort: Leverkusen

BeitragVerfasst am: 28.02.2007, 14:35    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 28.02.2007, 16:16    Titel: Antworten mit Zitat

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. Zunge rausstrecken
Bei Volkards Tutorial wird imho auch geklärt, wie man Klassen definiert bzw. es wird so gearbeitet, dass man das selbst rauslesen kann. zwinkern
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
alfonsospringer



Anmeldungsdatum: 27.04.2006
Beiträge: 445

BeitragVerfasst am: 28.02.2007, 18:44    Titel: Antworten mit Zitat

@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
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Off-Topic-Forum Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz