C; stdio.h und DevCPP

Dieses Thema im Forum "Programmieren" wurde erstellt von DIAMANT, 5. Dezember 2004.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. DIAMANT

    DIAMANT Halbes Megabyte

    Registriert seit:
    2. August 2003
    Beiträge:
    520
    Hallo Leute!

    Ich hab da so ein blödes Problem.
    Ich will C und C++ lernen. Dazu hab ich mir 1 Buch (c++) und ein E-Book (C) gekauft.

    Als IDE hab ich mir den Bloodshed Dev-C++ geholt. Kostenlos und der beherrscht die beiden Sprachen. Aus dem Netz hab ich auch nen Lehrgang für C++ für diesen Compiler runtergeladen. Da ich aber nicht so viel ausdrucken wollte, hab ich mir noch das Buch Visual C++ 6 gekauft. Basieren beide auf C++.
    In dem Onlinelehrgang steht als Beispielprogramm "Hello World" folgendes:

    #include <iostream.h>

    int main(void)
    {
    cout<<"Hello. World!"endl;
    cin.get ()endl;
    return 0;
    }

    Damit funkrioniert das Beispielprogramm. Die Anzeige bleibt bis ich "Enter" gedrückt hab.
    Im Buch und im E-Book steht folgendes (für C++ und C gleich):

    #include <stdio.h>

    int main(void)
    {
    printf ("Hello World!\n");
    return 0;

    Hierbei blinkt nur das DOS Fenster 1 Mal und ist weg. Ich kann nicht mal lesen was drin steht. Genauso bei anderen beispielen aus dem E-Book. Es wird zwar alles ausgeführt aber Ich bekomm davon herzlich wenig mit.

    Könnt ihr mir helfen?
    Was muss ich tun bzw. Was mach ich falsch?

    Dank im vorraus.

    MfG.
    DIAMANT
    }
     
  2. DIAMANT

    DIAMANT Halbes Megabyte

    Registriert seit:
    2. August 2003
    Beiträge:
    520
    Problem gelöst!

    Es gehörte lediglich vor das return 0 die Zeile system("pause").
    Um das zu erfahren musste ich auf die 9 Betaversion von Dev-CPP 5 updaten.

    Gruß.
     
  3. rapmaster

    rapmaster Halbes Gigabyte

    Registriert seit:
    21. Juli 2002
    Beiträge:
    5.181
    nur mal so. dein c++ code ist schrecklich..
    und system("pause"); ebenfalls..

    denke an: plattformunabhängigkeit und co..
    mfg
     
  4. azonic.1988

    azonic.1988 Byte

    Registriert seit:
    27. Oktober 2004
    Beiträge:
    55
    @rapmaster
    >nur mal so. dein c++ code ist schrecklich..
    >und system("pause"); ebenfalls..
    dann gib mal ein beispiel wie der code besser aus sehen sollte.
    erst besser machen, dann beschweren :D.

    bei c könnte ich dir helfen:
    #include <stdio.h> // standart-bibliothek wie du sicher weißt
    #include <conio.h> // erweiterte bibliothek für consolen

    void main()
    {
    printf("hello world !\n");
    getch(); // funktion aus conio.h wartet auf eine eingabe
    }

    p.s.: so sollte es eigentlich klappen, für weitere fragen einfach posten, so weit ich helfen kann werde ich es versuchen.
     
  5. specialist7

    specialist7 Kbyte

    Registriert seit:
    29. Juli 2002
    Beiträge:
    490
    blabla, plattformunabhängigkeit...

    sorry, aber was ist an dem c code so falsch?
     
  6. DIAMANT

    DIAMANT Halbes Megabyte

    Registriert seit:
    2. August 2003
    Beiträge:
    520
    So Leute.

    Erst mal danke für die Hilfe.

    Der von Dev-C++ vorgeschlagene SC für das HW Programm lautet:
    #include <iostream>

    using namespace std;

    int main (int argc, char *argv[])
    {
    cout << "Hello World!" << endl;
    cout << "Press ENTER to continue..." << endl;
    cin.get();
    return 0;
    }


    Der SC für ein leeres DOS Projekt welcher nach dem Update vorgeschlagen wird ist folgender:
    #include <cstdlib>
    #include <iostream>

    using namespace std;

    int main(int argc, char *argv[])
    {
    system("PAUSE");
    return EXIT_SUCCESS;
    }

    @azonic.1988

    Thx.
    Dein Vorschlag funktioniert auch. Nur wird die funktion "getch()" Weder in dem E-Book noch im Buch erwähnt.

    ättet ihr vielleicht mal eine Empfehlung für ein C++ und ein C Buch für DOS und W32 Programmierung dass mit diesen Befehlen ausgestattet ist bzw. welches mit meinem IDE läuft.

    Gruß und Danke.
    DIAMANT
     
  7. rapmaster

    rapmaster Halbes Gigabyte

    Registriert seit:
    21. Juli 2002
    Beiträge:
    5.181
    also der code:

    #include <iostream>

    using namespace std;

    int main (int argc, char *argv[])
    {
    cout << "Hello World!" << endl;
    cout << "Press ENTER to continue..." << endl;
    cin.get();
    return 0;
    }

    ist eindeutig viel besser...

    @specialist7

    plattformunabhängigkeit heisst, dass dieses programm nicht nur unter windows funktioniert.

    pause ist ein windowsprogramm.
    bei vielen anderen systemen heisst es:
    sleep <sekunde>
     
  8. specialist7

    specialist7 Kbyte

    Registriert seit:
    29. Juli 2002
    Beiträge:
    490
    nein, das stimmt nicht. pause wartet auf eine eingabe, während sleep das system für die angegebene anzahl der ms "einfriert"... ;)
     
  9. rapmaster

    rapmaster Halbes Gigabyte

    Registriert seit:
    21. Juli 2002
    Beiträge:
    5.181
    genau dieses problem mit der fehlenden pause-systemfunktion will ich ja durch den systembefehl sleep lösen.

    mfg
     
  10. azonic.1988

    azonic.1988 Byte

    Registriert seit:
    27. Oktober 2004
    Beiträge:
    55
    ich habe zwar kein buch in dem getch(); genau beschrieben wird.
    kann dir aber sagen, dass es sich genau so verhält, wie getchar();.
    mit dem einzigem nachteil, dass getchar(); auf eine bestädtigung mit <enter> besteht. getch(); ist dem nach auch nur für einzelne zeichen gedacht.

    ich denke, dass die bücher die du hast erst mal reichen, denn interessante sachen findest du dann in büchern über erweiterte programmierung und programmiertechnicken. jedoch würde ich erst das buch über c-programmierung lesen und später auf c++ umsteigen. da nicht nur der name gleich ist sondern große teile der programmiersprache ähneln.

    @rapmaster
    >genau dieses problem mit der fehlenden pause-systemfunktion >will ich ja durch den systembefehl sleep lösen.
    das ist sicher das problem, aber wenn du wegen plattformunabhängigkeit redest, dann gebe auch lösungen für diese probleme an.
     
  11. DIAMANT

    DIAMANT Halbes Megabyte

    Registriert seit:
    2. August 2003
    Beiträge:
    520
    Hallo.

    Leider hab ich ein ungünstiges Buch erwischt. Das Buch über C ist i.O. Nur hab ich mir das Buch über C++ von BHW besorgt. Und die idioten setzen nur auf teures Visual C++ 6.0 von Microsoft. :heul:

    Jetzt weiß ich nicht was ich machen soll (außer C lernen).

    Und noch eine Frage.

    Wie kann man in C/C++ berechnungen mit Exponenten höher als 3 durchführen z.B. 2^43 (bei 2^3 kommt am ende 1 raus.)

    Gruß.
     
  12. azonic.1988

    azonic.1988 Byte

    Registriert seit:
    27. Oktober 2004
    Beiträge:
    55
    wenn du an visual c++ kommen willst solltest du dir von dem verlag markt und technick das buch "c++ easy" zulegen. da liegt das visual c++ als autoren edition auf cd bei. das buch kostet rund 15€. einziger nachteil: beim starten des programmiertem programms kommt eine meldung von microsoft von wegen, dass das programm mit der autoren-edition erstellt wurde und deswegen nicht kommerziell genuzt werden darf.

    aber für 15€ macht das auch nicht viel aus.
     
  13. specialist7

    specialist7 Kbyte

    Registriert seit:
    29. Juli 2002
    Beiträge:
    490
    na ja, vllt syntaktisch aber mehr auch nicht... ;)

    geht nicht.

    The Sleep function suspends the execution of the current thread for at least the specified interval.

    danach wird das programm an der stelle weiter ausgeführt, an der es in den "sleep-modus" gesetzt wurde... das heißt, bei dir: beendet...
     
  14. specialist7

    specialist7 Kbyte

    Registriert seit:
    29. Juli 2002
    Beiträge:
    490
     
  15. DIAMANT

    DIAMANT Halbes Megabyte

    Registriert seit:
    2. August 2003
    Beiträge:
    520
    Könntest du mir dann ein Buch / EBook(kostenloses) empfehlen, in dem ich nicht alles für den M$ Compiler zugeschnittenes finde?

    Gruß.
     
  16. azonic.1988

    azonic.1988 Byte

    Registriert seit:
    27. Oktober 2004
    Beiträge:
    55
    warum den nur c++, ich finde es ist wichtiger erst die grundlagen zu lernen, danach kann man noch c++ lernen, was dann nicht mehr so schwer ist.
    der nachteil, den du bei c++ nicht beachtest, ist hier z.b.: die datentypen vergabe nicht so wichtig(du kannst so jeden scheiß schreiben).

    für diamant habe ich auch was dabei :D, der code für dein hochzahlen problem.
    hier ist der c-code:
    #include <stdio.h> /* standart-bibliothek */
    #include <conio.h> /* erweiterte consolen-bibliothek */

    void rechner(int zahl) /* erstellt funktion rechner, mit variable */
    {int i;int erg; /* setzt variable i für dir schleife, erg für ergebniss */
    i = 1; /* setzt variable i auf 1 */
    erg = 2; /* setzt variable erg auf 2 */
    while(i != zahl) /* wiederhohlt so lange bis i gleich zahl */
    {
    i = i + 1; /* für die whileschleife zu wiederhohlung */
    erg = erg * 2; /* errechnet die hochzahl */
    }
    printf("%i",erg); /* gibt die variable erg auf dem bildschirm aus */
    }

    void main() /* main funktion, das herzstück */
    {
    rechner(30); /* ruft funktion rechner auf und setzt variable zahl auf 30 */
    getch(); /* wartet auf einghabe einer taste auf der tastatur */
    }
    der einzige nachteil du kannst maximal 8 zeichen ausgeben, es geht aber bis 2^30, das liegt aber am datentyp :D.
     
  17. rapmaster

    rapmaster Halbes Gigabyte

    Registriert seit:
    21. Juli 2002
    Beiträge:
    5.181
    keien ahnung woher du deine description fuer sleep her hast. aber bei mir heisst es:

    DESCRIPTION
    Pause for NUMBER seconds. SUFFIX may be `s' for seconds
    (the default), `m' for minutes, `h' for hours or `d' for
    days. Unlike most implementations that require NUMBER be
    an integer, here NUMBER may be an arbitrary floating point
    number.



    und eine plattformunabhängige aber sehr dumme loesung wäre, ich lasse den pc was ganz grosses rechnen...

    mfg
     
  18. specialist7

    specialist7 Kbyte

    Registriert seit:
    29. Juli 2002
    Beiträge:
    490
    stimmt nicht... habe ich schon im anderen thread geschrieben... :D
     
  19. azonic.1988

    azonic.1988 Byte

    Registriert seit:
    27. Oktober 2004
    Beiträge:
    55
    falls das auf meinen code bezogen ist, solltest du noch mal richtig hinschauen. das programm ist zur berechnung von hochzahlen geeignet. außerdem ist das nicht zum warten, sondern um ein ergebnis zu bekommen. wie gesagt ist getch(); anstelle system("pause"); eine plattformunabhängige lösung, welche auf keinen fall schlecht ist :D.
     
  20. ChuchiMeischtr

    ChuchiMeischtr ROM

    Registriert seit:
    30. Dezember 2004
    Beiträge:
    1
    C++

    Das ist die typische Aussage: Zuerst C, dann C++...

    Jedoch raten dir viele davon ab, denn viele Sachen von C sind in C++ zwar enthalten (Grundsyntax etc.) ABER das lernt man mit C++ ja ebenso.
    Ausserdem ist C++ besser als C (auch z.T einfacher zu lernen). Ein Beispiel sind schon die fehlenden Strings, die in C schlichtweg nicht wirklich vorhanden sind, und man mühselige und fehleranfällige Funktionen gebrauchen muss (strcmp, etc...). IN C++ HINGEGEN: #include <strings>, voilà! strings wie in jeder "höheren" Programmiersprache auch! Auch Objektorientierte Programmierung gibt es erst mit C++ wirklich, und wieso sollte man zuerst C lernen, wenn C++ einfacher zu lernen, und erst noch BESSER IST ALS C???. Abgesehen davon, ist C++ sowieso weiter entwickelt als C, also von dem her...

    Bjarne Stroustroup, der Erfinder von C++, sagt in seinem Buch "The C++ Programming Language, 3rd Edition", dass es ABSOLUT nicht notwendig und sinnvoll ist, C zu beherrschen, bevor man C++ lernt, denn man lernt viele Dinge "falsch" ("new" statt "malloc", // ist möglich für Comments, etc.) die man dann nachher umlernen muss... Auch ich lerne C++, habe mich aber zuerst mit C herumgeschlagen (weil ich die Unterschiede nicht kannte) und schnell gemerkt, dass C++ in vielen Dingen einfacher, besser zu lernen, und weiter verbreitet als C ist. (da es ja eine Weiterentwicklung von C ist...)

    Auch andere Quellen haben mir das bestätigt:
    -http://cplus.about.com/od/beginnerctutorial/l/aa010702a.htm
    - http://www.cprogramming.com/begin.html (siehe letzte Frage, am besten auch den Rest gut durchlesen...)

    Ach und von wegen Buch: Das von Bjarne Stroustroup ist völlig ungeegnet, wenn du keine Programmiererfahrung hast. Es ist zwar das beste und ausführlichste, aber ich bin auch von VB 6 umgestiegen und hatte so meine Vorkenntnisse. Trotzdem kein Buch, das einen an der Hand nimmt und "Hello World" schreibt...

    GreeeZ
     
Status des Themas:
Es sind keine weiteren Antworten möglich.

Diese Seite empfehlen