c:faq - Vorschläge

Diskussionen zu Tutorials, Änderungs- und Erweiterungswünsche
Benutzeravatar
fat-lobyte
Beiträge: 1398
Registriert: Sa Jul 05, 2008 12:23 pm
Wohnort: ::1
Kontaktdaten:

c:faq - Vorschläge

Beitrag von fat-lobyte » Mo Jul 07, 2008 6:15 pm

Hallo!
In diesem Thread könnt ihr Vorschläge/Bitten zu Fragen posten, die in die FAQ kommen sollen. Nachdem ihr einen Vorschlag gepostet habt, stellt euch bitte der Diskussion: beantwortet Fragen, verbessert Fehler und verbessert die Formatierung.
Wenn die Frage dann von der Allgemeinheit angenommen wird (wird von den Moderatoren entschieden), kommt die Frage dann ins FAQ.
Haters gonna hate, potatoes gonna potate.

Benutzeravatar
fat-lobyte
Beiträge: 1398
Registriert: Sa Jul 05, 2008 12:23 pm
Wohnort: ::1
Kontaktdaten:

Re: Vorschläge für die FAQ

Beitrag von fat-lobyte » Mo Jul 07, 2008 6:23 pm

Und hallo nochmals.
Hier gleich der Vorschlag für die erste Frage.
Ich dachte mir, dass viele Leute unter Windows zu programmieren beginnen werden und deshalb gleich als erstes diese Frage stellen werden.
Falls ihr irgendwelche Fehler findet (inhaltlich oder rechtschreibfehler), wenn ihr einen besseren Vorschlag für die Formatierung findet, oder wenn ihr denkt dass diese Frage anders behandelt werden müsste, dann Postet hier eure Bedenken.
Also dann, hier ist die Frage:
Frage #1: Wieso blinkt mein Programm nur kurz auf und verschwindet dann sofort wieder?

Antwort: Weil es genau das tun soll.
Höchstwahrscheinlich habt ihr gerade mit dem Programmieren angefangen, verwendet Windows und irgendeine Entwicklungsumgebung, oder ihr habt einfach nur auf die .exe geklickt. (wenn nicht, dann läuft hier was falsch...) Und jetzt wundert ihr euch, wie ihr denn euer Programm zu gesicht bekommt!
Tja, ihr müsst wissen dass der Computer genau das Tut was ihr ihm sagt. Nicht mehr und nicht weniger. Wenn ihr sagt, drucke etwas auf den bildschirm, dann tut er das und dann ist er fertig.

Seht euch folgendes Programm an:

Code: Alles auswählen

#include <iostream>
int main()
{
    std::cout<<"Hello proggen.org!\n";
    return 0;
}
Dieses Programm schreibt "Hello proggen.org!" auf den Bildschirm und beendet sich dann sofort wieder. Wieso sollte es denn auch warten, bis jemand sehen kann was da ausgedruckt wurde?

Nun, das war jetzt wenig zufriedenstellend, ihr wollt doch eure Programme sehen, oder? Natürlich geht das. Ihr habt 2 möglichkeiten.

Möglichkeit a)
Started das Programm aus der Konsole! Die Konsole erreicht ihr unter einen der folgenden Wege:
  1. Start -> Alle Programme/All Programs -> Zubehör/Accessories -> Eingabeaufforderung/Command Prompt
  2. Start -> Ausführen/Run -> "cmd" eingeben (ohne anführungsstriche) -> Ok klicken
  3. Super(Windows) Taste gedrückt halten und R drücken -> "cmd" eingeben (ohne anführungsstriche) -> Enter Drücken
Jetzt habt ihr eine Eingabeaufforderung vor auch. Damit ihr euer Programm ausführen könnt, müsst ihr zuerst in das Verzeichnis wechseln wo die .exe liegt. Falls ihr eine Entwicklungsumgebung habt kann das ziemlich tief versteckt in irgendeinem Projektunterordner sein, die zum Beispiel "bin" "Debug" "Release" oder sonstwas heißen. Im zweifelsfall seht ihr in den Projekteinstellungen der Entwicklungsumgebung nach.
In das verzeichnis wechseln könnt ihr mit dem Befehl "cd". Also wenn ihr z.B. euer Programm auf dem Desktop habt müsst ihr folgendes eingeben:

Code: Alles auswählen

cd "C:\Dokumente und Einstellungen\username\Desktop"
. Die Anführungszeichen sind notwendig, wenn Leerzeichen im Pfad Enthalten sind, und "username" natürlich mit eurem benutzernamen ersetzen.
Dann gebt ihr einfach den Namen eures Programms ein und schwupp, schon läuft es.

Möglichkeit b)
Ihr erstellt euch eine leere Datei im gleichen Verzeichnis wo die .exe liegt. Diese Datei nennt ihr "startprog.bat". (Nicht startprog.bat.txt! Es kann sein, dass Windows die Dateiendung vor euch versteckt. Dann müsst ihr Im Explorer- Menü unter
Extras/Tools -> Ordneroptionen/Folder Options -> Registerkarte Ansicht/View -> "Bekannte Dateierweiterungen Ausblenden"/"Hide Extensions for known filetypes" Abwählen.)
Dann öfnnet ihr diese Datei mit einem Texteditor, und schreibt dort 2 Zeilen rein:

Code: Alles auswählen

name_eures_programms.exe
pause
Wenn ihr jetzt auf diese .bat datei doppelklickt, dann wird euer Programm ausgeführt, und nach dem es beendet ist, wird gewartet bis ihr eine Taste drückt, und erst dann wird das Fenster geschlossen.

So, am liebsten gewöhnt ihr euch gleich an die Kommandozeile. Die kann unter Windows zwar sehr wenig im Vergleich zur Linux Konsole, allerdings werdet ihr trotzdem höchstwahrscheinlich einen großen Teil eurer Programmierkarriere dort verbringen. Daran ist nichts Schlimmes: sehr viele Programmierer (auch sehr gute) verzichten gerne auf Entwicklungsumgebungen und verwenden mit Vergnügen die Kommandozeile.
[edit]Rechtschreibfehler ausgebessert[/edit]
Zuletzt geändert von fat-lobyte am Mo Jul 07, 2008 6:58 pm, insgesamt 1-mal geändert.
Haters gonna hate, potatoes gonna potate.

Metamorph
Beiträge: 123
Registriert: Sa Jul 05, 2008 12:27 pm

Re: Vorschläge für die FAQ

Beitrag von Metamorph » Mo Jul 07, 2008 6:44 pm

Sehr gut beschrieben.
Ich hätte da aber noch Punkt c:
...
Möglichkeit c)
Ihr schreibt das Programm so, dass es nach der letzten Ausgabe stoppt und sich erst beendet, wenn eine beliebige Taste gedrückt wird.
Dazu sind folgende Anweisungen in C möglich:

Code: Alles auswählen

# include<stdio.h>

int main(){
    printf("Hello World\n");
    printf("Press any key to close the program!");
    getchar();
    return 0;
}
Man kann auch die Funktion getch() nehmen. Da sie aber nur unter Windows gültig ist, sollte man diese Funktion meiden.

In C++ sieht es folgendermaßen aus:

Code: Alles auswählen

# include<iostream>

int main(){
    std::cout<<"Hello World"<<std::endl;
    std::cout<<"Press any key to close the program";
    cin.get();
    return 0;
}
Außerdem würde ich noch ein C-Beispiel dazu schreiben, sonst haben die einen oder anderen schnell ein großes Fragezeichen auf dem Kopf. :D
fat-lobyte hat geschrieben:So, am liebsten gewöhnt ihr euch gleich an die Kommandozeile. Die kann unter Windows zwar sehr wenig im vergleich zur Linux Konsole, allerdings werdet ihr trotzdem höchstwahrscheinlich einen großen Teil eurer Programmierkarriere dort verbringen. Daran ist nichts schlimmes: sehr viele Programmierer (auch sehr gute) verzichten gerne auf entwicklungsumgebungen und verwenden mit vergnügen die Kommandozeile.
Ich habe noch die Rechtschreibfehler markiert.

Benutzeravatar
fat-lobyte
Beiträge: 1398
Registriert: Sa Jul 05, 2008 12:23 pm
Wohnort: ::1
Kontaktdaten:

Re: Vorschläge für die FAQ

Beitrag von fat-lobyte » Mo Jul 07, 2008 6:57 pm

Metamorph hat geschrieben: Ich hätte da aber noch Punkt c:
Diese Möglichkeit habe ich eigentlich nicht "Vergessen", ich habe sie bewusst ausgelassen. getch() funktioniert nur für Windows, und zwar mithilfe eines DOS headers, den eigentlich kein Programmierer mehr zu sehen bekommen sollte (conio.h). getch() ist also vollkommen inakzeptabel für mich.
getchar() ist zwar schon Portabel, verlangt aber 1. die veränderung von bereits vorhandenem Code, und zwar nur weil man das Programm nicht aus der Konsole gestartet hat, wie man es eigentlich sollte.
2. ergeben sich dadurch gravierende schwierigkeiten im zusammenhang mit dem stdin- puffer.
Betrachte folgenden Code:

Code: Alles auswählen

#include <stdio.h>

int main()
{
    int d;
    printf("Bitte geben sie eine Zahl ein: ");
    scanf("%d", &d);
    printf("\nDie zahl war %d.\n", d);
    printf("Druecken sie enter um zu beenden: ");
    getchar();
    return 0;
} 
Wenn man bei dem Scanf statt einer Zahl einen buchstaben eingibt, bleibt d undefiniert, und der buchstabe im eingabepuffer. Beim getchar() aufruf wird dann nicht mehr von der Tastatur gelesen, sondern von diesem Puffer, und das Programm verschwindet erst wieder sofort, und diesmal verursacht es größere Verwirrung.
Metamorph hat geschrieben:Außerdem würde ich noch ein C-Beispiel dazu schreiben, sonst haben die einen oder anderen schnell ein großes Fragezeichen auf dem Kopf. :D
Wie meinst du das? Also als codebeispiel hab ich schon das "Hello proggen.org", und ansonsten war da nicht viel C dabei.
Metamorph hat geschrieben:Ich habe noch die Rechtschreibfehler markiert.
Danke, werde ich ausbessern.
Haters gonna hate, potatoes gonna potate.

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8858
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Vorschläge für die FAQ

Beitrag von Xin » Mo Jul 07, 2008 7:19 pm

fat-lobyte hat geschrieben:Hallo!
In diesem Thread könnt ihr Vorschläge/Bitten zu Fragen posten, die in die FAQ kommen sollen. Nachdem ihr einen Vorschlag gepostet habt, stellt euch bitte der Diskussion: beantwortet Fragen, verbessert Fehler und verbessert die Formatierung.
Wenn die Frage dann von der Allgemeinheit angenommen wird (wird von den Moderatoren entschieden), kommt die Frage dann ins FAQ.
Ein Diskussionsthread zur FAQ gefällt mir sehr gut, doch die FAQ selbst würde ich eher im Wiki anlegen.
Beiträge kann man auch editieren, doch ließe sich hier direkt aus dem Wiki referenzieren und die FAQ wäre auch da zu finden, wo die Fragen auftauchen.
Ähnlich wie der Link zum Wiki könnte man über das C/C++ Forum einen direkten Link zur FAQ setzen. Den zu übersehen wird dann schon sehr schwierig (wenngleich wir alle wissen, dass es weiterhin Spezialisten geben wird, die die FAQ auch hier übersehen ;-))
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
fat-lobyte
Beiträge: 1398
Registriert: Sa Jul 05, 2008 12:23 pm
Wohnort: ::1
Kontaktdaten:

Re: Vorschläge für die FAQ

Beitrag von fat-lobyte » Mo Jul 07, 2008 7:22 pm

Xin hat geschrieben:Ein Diskussionsthread zur FAQ gefällt mir sehr gut, doch die FAQ selbst würde ich eher im Wiki anlegen.
Beiträge kann man auch editieren, doch ließe sich hier direkt aus dem Wiki referenzieren und die FAQ wäre auch da zu finden, wo die Fragen auftauchen.
Ähnlich wie der Link zum Wiki könnte man über das C/C++ Forum einen direkten Link zur FAQ setzen. Den zu übersehen wird dann schon sehr schwierig (wenngleich wir alle wissen, dass es weiterhin Spezialisten geben wird, die die FAQ auch hier übersehen ;-))
Gute Idee, dann lösch und verlink mal bitte ;-)
Ich hab nämlich keine Moderatorenrechte.
Haters gonna hate, potatoes gonna potate.

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8858
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Vorschläge für die FAQ

Beitrag von Xin » Mo Jul 07, 2008 7:57 pm

fat-lobyte hat geschrieben:Gute Idee, dann lösch und verlink mal bitte ;-)
Ich hab nämlich keine Moderatorenrechte.
Ich denke, niemand hat ein Problem damit, das zu ändern, also guck doch mal, ob ich das mit der Forumkonfig soweit hinbekommen habe.

Benutzeravatar
fat-lobyte
Beiträge: 1398
Registriert: Sa Jul 05, 2008 12:23 pm
Wohnort: ::1
Kontaktdaten:

Re: Vorschläge für die FAQ

Beitrag von fat-lobyte » Mo Jul 07, 2008 8:11 pm

Xin hat geschrieben:Ich denke, niemand hat ein Problem damit, das zu ändern, also guck doch mal, ob ich das mit der Forumkonfig soweit hinbekommen habe.
Jo, hat funktioniert Danke. Wie das mit dem Link geht hab ich aber noch nicht so ganz heraußen...
Haters gonna hate, potatoes gonna potate.

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8858
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Vorschläge für die FAQ

Beitrag von Xin » Mo Jul 07, 2008 8:21 pm

fat-lobyte hat geschrieben:
Xin hat geschrieben:Ich denke, niemand hat ein Problem damit, das zu ändern, also guck doch mal, ob ich das mit der Forumkonfig soweit hinbekommen habe.
Jo, hat funktioniert Danke. Wie das mit dem Link geht hab ich aber noch nicht so ganz heraußen...
Stimmt... dafür bedarf es dieses knallroten Namens.... irgendwo kann man auch diese grellen Farben ändern... **such**
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
fat-lobyte
Beiträge: 1398
Registriert: Sa Jul 05, 2008 12:23 pm
Wohnort: ::1
Kontaktdaten:

Re: Vorschläge für die FAQ

Beitrag von fat-lobyte » Mo Jul 07, 2008 8:25 pm

Xin hat geschrieben:Stimmt... dafür bedarf es dieses knallroten Namens.... irgendwo kann man auch diese grellen Farben ändern... **such**
Und schon wurde er blau...
Haters gonna hate, potatoes gonna potate.

Antworten