Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Blutiger Anfänger!

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
19.04.2010, 17:59 Uhr
Freifaller



Ich bin vor kurzem (2 Wochen) in die C-Programmierung eingestiegen weil mich die vielfältigen Möglichkeiten sehr reizen, die einem zugänglich werden wenn man programmieren kann. Die ersten Tage habe ich mich an einem online Tutorial vorangehangelt. Ich habe mir jetzt das Buch "C-in 21 Tagen" gekauft und bin eigentlich recht zufrieden. Jedoch ist jedes Programm das ich bisher diesem Buch entnommen habe nicht nutzbar, da überall die Anweisung

system("PAUSE");

fehlt und sich das Programm so direkt wieder schließt. Ist diese Anweisung also nicht direkt zwingend notwendig sondern abhängig vom verwendeten Compiler? Als Entwicklungsumgebung verwende ich Dev C++. Die Autoren werden wohl mitnichten einen so gravierenden Fehler in ihrem Buch übersehen haben?!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
19.04.2010, 18:43 Uhr
~toxic
Gast


siehe hier
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
19.04.2010, 18:48 Uhr
Hans
Library Walker
(Operator)


Hi,

die system-Anweisung ist nicht zwingend erforderlich und es gibt verschiedene Wege, das Konsolen- oder auch DOS-Fenster offen zu halten. Dazu steht hier bereits alles notwendige.
Mein Favorit ist dabei die dritte Variante, weil ich so auch die Ergebnisse von zwei Programmläufen miteinander vergleichen kann. (Vorausgesetzt, dass das Programm den Bildschirm nicht löscht.)

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
19.04.2010, 19:34 Uhr
Freifaller



Danke für eure Antworten. Es geht mir primär darum warum davon im Buch nichts auftaucht. Ist das in der Konsequenz also ein Fehler der Autoren? Wäre mir die system-Anweisung nicht bekannt wär keines ihrer Programme sinnvoll ausführbar gewesen. Beispiel :

C++:
#include <stdio.h>

int x, y;

int main(void)
{
  for ( x = 0; x < 10; x++, printf("\n"))
     for ( y = 0; y < 10; y++)
         printf( "X");

return 0;
}



Das ist der exakte Code wie er im Buch steht. Führe ich das Programm so aus schließt es sich direkt wieder. Es ist kein ersatz für die system-Anweisung zu finden.

Edit: cpp-tags eingefügt. Demnächst bitte selber machen.

Dieser Post wurde am 19.04.2010 um 22:30 Uhr von Hans editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
19.04.2010, 21:09 Uhr
~f.-th.
Gast


C oder C++ läuft ja nicht nur unter der grafischen Windowsoberfläche - hättest du die Hinweise gelesen und verstanden - wäre dir das schon klar. Warum probierst du die Hinweise in den Links nicht?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
19.04.2010, 22:25 Uhr
0xdeadbeef
Gott
(Operator)


Wenn man ein Konsolenprogramm schreibt, geht man auch davon aus, dass es aus der Konsole gestartet wird, und da macht es ausgesprochen wenig Sinn, wenn es jedes mal auf einen Tastendruck wartet.

Wenn du es per Mausklick starten willst, schreib halt eine .bat drumherum, etwa

Code:
@echo off
programm
pause



Wenn du es im Debugger hast, setzt du dir im Zweifel eh Haltepunkte, und ansonsten bieten gute IDEs Möglichkeiten, die Ausgabe anzusehen, etwa eingebaute Konsolenfenster. MSVC beispielsweise wartet am Ende des Programms, wenn du es mit Strg+F5 startest (also ohne Debugger).

Ich weiß nicht, wie das bei Dev-C++ aussieht, aber Dev-C++ wird schon seit Jahren nicht mehr weiterentwickelt und ist dementsprechend völlig veraltet. Du solltest dich vielleicht nach einer besseren IDE umsehen.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
19.04.2010, 23:05 Uhr
Hans
Library Walker
(Operator)


Hi,


Zitat von Freifaller:
Danke für eure Antworten. Es geht mir primär darum warum davon im Buch nichts auftaucht. Ist das in der Konsequenz also ein Fehler der Autoren?

Nein, das ist kein Fehler der Autoren. Die erwarten nur einfach, das man weis, was eine Konsole ist und setzen voraus, das man damit umgehen kann. Diese sogenannte Konsole wird auch als Befehlszeile, Eingabeaufforderung oder DOS-Fenster bezeichnet, womit aber immer das gleiche gemeint ist, nämlich ein schwarzer Bildschirm, bzw. ein Fenster mit schwarzem Hintergrund, wo hinter einem "Grösser als"-Zeichen ein Cursor blinkt und darauf wartet, das über die Tastatur irgendwelche Eingaben gemacht werden.


Zitat von Freifaller:
Es ist kein ersatz für die system-Anweisung zu finden.

Das stimmt so nicht. In dem von mir oben verlinkten Beitrag stehen zwei Möglichkeiten beschrieben, wie Du das Programm so erweitern kannst, dass das Fenster offen bleibt, bis Du eine Taste drückst, so wie bei system.
Die dritte (und von mir bevorzugte) Möglichkeit ist, ein DOS-Fenster aufzumachen, und das Programm von dort aus zu starten. Dann kann man sich die Erweiterungen mit dem Tastendruck sparen, weil das Fenster offen bleibt, nachdem das Programm beendet wurde. Wie das geht, hat Pablo auch beschrieben, obwohl er sich an einer englischen Windowsversion orientiert. Das Konsolen- oder DOS-Fenster kannst Du aber auch über Start/Programme/Zubehör/Eingabeausforderung öffnen. Unter XP und höher musst Du vorher evtl. noch anklicken, das er alle Programme anzeigen soll.
Wichtig ist dabei, dass Du Dich in dem Verzeichnis befindest, wo auch Deine C-Quelltexte liegen.

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
19.04.2010, 23:19 Uhr
Freifaller



Da habe ich tatsächlich was missverstanden bzw. überlesen. Schlechter Anfang. Danke fürs Feedback und eure Geduld. Eine .bat drum herum schreiben, so weit bin ich leider noch nicht. Ich werde deinen Rat befolgen und mich mal nach einer aktuelleren IDE umschauen.

@ Hans

Ja die Kommandozeile ist mir eigentlich ein Begriff, habe es eben nach der dritten Möglichkeit ausgeführt und es klappte natürlich alles wie geplant. Mea culpa.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
19.04.2010, 23:54 Uhr
Hans
Library Walker
(Operator)


Hi,

Zitat von Freifaller:
@ Hans

Ja die Kommandozeile ist mir eigentlich ein Begriff, habe es eben nach der dritten Möglichkeit ausgeführt und es klappte natürlich alles wie geplant. Mea culpa.

na das klingt doch gut.

Was die IDE angeht, so brauchst Du Dich wirklich nur darauf zu konzentrieren, weil Du den Compiler ja schon hast. Interessant wäre da z.B. Code::Blocks oder, wenn du ganz professionell sein willst, Eclipse mit CDT-Plugin. Dazu gibt es auch eine Anleitung als Buch, die ich an Deiner Stelle aber erst mal in einer Bibliothek suchen würde.

Ansonsten kannst Du auch das Open Watcom Paket ausprobieren. Da bekommst Du neben einer IDE auch noch einen Compiler und Zubehör dabei. Der Compiler ist zwar nicht auf dem allerneusten Stand der Technik, und setzt neuere Standards noch nicht so perfekt um wie der gcc, aber das kann Dir als Anfänger relativ egal sein.

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
20.04.2010, 09:22 Uhr
ao

(Operator)



Zitat von Hans:
Nein, das ist kein Fehler der Autoren.


Ein unverzeihlicher Fehler von Autoren ist, wenn sie es versäumen, auf den Debugger hinzuweisen. Ich fasse das nicht.

Jedes C-Buch fängt gleich an, mit einem Hallo-Welt-Programm. Was ist so schwer daran, im nächsten Satz zu schreiben "und jetzt drücken wir F10 (*) und führen das Programm schrittweise aus"?

(*) oder eine andere Taste, je nach IDE

Dasselbe gilt für Vorlesungen und für Informatikkurse in der Schule. Millionen von Programmieranfängern quälen sich mit denselben Problemen herum (mein Fenster schließt sich, mein Programm startet und stürzt dann ab, mein Programm macht Sachen, die ich nicht verstehe und so weiter). Wenn sie wüssten, wie man mit dem Debugger umgeht, könnten sie sich selber helfen.

Ich weiß, dass es in der reinen Lehre der Informatik die Regel gibt, dass man lieber designen als debuggen soll, aber das ist kein Grund, den Debugger geradezu systematisch zu verschweigen, denn irgendwann kommt in jedem Projekt die Testphase.

Dieser Post wurde am 20.04.2010 um 09:30 Uhr von ao editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: