C / C++ Problem mit #define

Diskutiere C / C++ Problem mit #define im Webmaster Hilfe / Programmierer Forum Forum im Bereich Computerprobleme; #include <stdio.h> #define a (a)*(a) int main() { int a; a = 3; printf ("a hat den Wert %d", a ); return 0; } Ich...

  1. #1 weltbesiedler, 02.01.2011
    weltbesiedler

    weltbesiedler 08/15 User

    Dabei seit:
    19.07.2010
    Beiträge:
    2.827
    Zustimmungen:
    0
    Ort:
    Bayern
    Code:
    #include <stdio.h>
    #define a (a)*(a)
    int main()
    {
        int a;
        a = 3;
        printf ("a hat den Wert %d", a );
        return 0;
    }
    Ich möchte das a (in diesem Fall 3) durch a*a (also 3*3) ersetzt wird. Nur irgendwie wird die printf - Zeile angestrichen.
    Dann würde ich noch gerne wissen, wie ich das Fenster so lange offen halten kann, bis ich Enter drücke oder das das Fenster erst nach z.B. 10 sec zu geht.
     
  2. Anzeige

    schau mal hier: Windows-Wartungs-Tool. Viele Probleme lassen sich damit einfach beheben. Oftmals ist der PC dann auch schneller!
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren.
  3. Lotus

    Lotus Erfahrener Benutzer

    Dabei seit:
    17.02.2007
    Beiträge:
    2.428
    Zustimmungen:
    0
    Ich bin mir gerade nicht sicher ob diese "Doppelbelegung" nicht für Probleme sorgt.
    Mach mal lieber:
    #define a 3
    #define A ( a * a )

    Das sich das define auf deine Variable int a bezieht kann ich mir nicht so recht vorstellen das der Zugriff funktioniert... eine andere Möglichkeit wäre:

    #define sqr(a) ( a * a )
     
  4. #3 weltbesiedler, 02.01.2011
    weltbesiedler

    weltbesiedler 08/15 User

    Dabei seit:
    19.07.2010
    Beiträge:
    2.827
    Zustimmungen:
    0
    Ort:
    Bayern
    Ok danke erstmal nun neues Problem, wie mach ich dem PC klar, dass ich hier entweder einen Integer oder einen Float eingeben will:

    Code:
    #include <stdio.h>
    #include <windows.h>
    
    int main() 
    {   
        int zahl;
        printf ("Welche Zahl soll multipliziert werden: \n");
        scanf ("%d", &zahl);
        printf ("Zahl hat den Wert %d. ", zahl*zahl );
        system("PAUSE");
    }
    Mit %d geht ja nur ein Integer und mit %f nur ein Float. Wie mach ich dann beides?
     
  5. Ezra

    Ezra Neuer Benutzer

    Dabei seit:
    25.08.2010
    Beiträge:
    27
    Zustimmungen:
    0
    Wenn zahl auch Gleitkommawerte annehmen kann, dann nimm generell float. Damit lassen sich doch trotzdem Ganzzahlberechnungen durchführen.
     
  6. #5 weltbesiedler, 02.01.2011
    weltbesiedler

    weltbesiedler 08/15 User

    Dabei seit:
    19.07.2010
    Beiträge:
    2.827
    Zustimmungen:
    0
    Ort:
    Bayern
    Ne klappt leider nicht:

    [​IMG]
     
  7. Lotus

    Lotus Erfahrener Benutzer

    Dabei seit:
    17.02.2007
    Beiträge:
    2.428
    Zustimmungen:
    0
    Du musst das auch umcasten:


    Code:
    #include <iostream>
    
    using namespace std;
    
    void main () {
        float zahl;
        cout << "Geben sie eine Zahl ein: "<<endl;
        cin >> zahl;
    
        
        cout << "Dies ist die Kommazahl: " << zahl << endl;
        cout << "Dies ist die Ganzzahl : " << (int) zahl << endl;
    }
     
  8. #7 weltbesiedler, 02.01.2011
    weltbesiedler

    weltbesiedler 08/15 User

    Dabei seit:
    19.07.2010
    Beiträge:
    2.827
    Zustimmungen:
    0
    Ort:
    Bayern
    Ups was sind denn das für neue Begriffe :D

    1. was ist cout
    2. was ist cin
    3. was ist endl

    :D

    In meinem Tutorial kommen die Begriffe gar nicht vor.
     
  9. Ezra

    Ezra Neuer Benutzer

    Dabei seit:
    25.08.2010
    Beiträge:
    27
    Zustimmungen:
    0
    Obiges ist C++. Lass Dich nicht verwirren.

    Was hast Du denn im Quellcode geändert? (Zeig den mal ganz)
     
  10. #9 weltbesiedler, 02.01.2011
    weltbesiedler

    weltbesiedler 08/15 User

    Dabei seit:
    19.07.2010
    Beiträge:
    2.827
    Zustimmungen:
    0
    Ort:
    Bayern
    Code:
    #include <stdio.h>
    #include <windows.h>
    
    int main() 
    {   
        int zahl;
        printf ("Welche Zahl soll multipliziert werden: \n");
        scanf ("%f", &zahl);
        printf ("Zahl hat den Wert %f. ", zahl*zahl );
        system("PAUSE");
    }
     
  11. Ezra

    Ezra Neuer Benutzer

    Dabei seit:
    25.08.2010
    Beiträge:
    27
    Zustimmungen:
    0
    Deklariere zahl als float, nicht als int.

    Code:
    #include <stdio.h>
    #include <windows.h>
    
    int main() 
    {   
        float zahl;
        ...
    }
     
  12. Anzeige

    Es ist generell erstmal empfehlenswert alle ggf. veralteten oder fehlerhaften Treiber zu scannen und auf neue zu aktualisieren. Hier kannst du einen Treiber-Scanner downloaden. Das erspart oftmals viel Ärger und hilft gegen diverse Probleme.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren.
  13. #11 weltbesiedler, 02.01.2011
    weltbesiedler

    weltbesiedler 08/15 User

    Dabei seit:
    19.07.2010
    Beiträge:
    2.827
    Zustimmungen:
    0
    Ort:
    Bayern
    Ah vielen Dank :D
     
  14. Lotus

    Lotus Erfahrener Benutzer

    Dabei seit:
    17.02.2007
    Beiträge:
    2.428
    Zustimmungen:
    0
    Was heißt nicht verwirren lassen, er schreibt C\C++ Problem..

    cin und cout sind quasi die Gegenfunktionen zum ein und auslesen in C++ (gegenueber von C)

    cout << == ausgabe
    cin >> == eingabe

    endl; ist lediglich der Umbruch auf eine neue Zeile.. da es aber betriebssystemspezifische Unterschiede gibt, wird das halt eher verwendet..

    Linux macht z.B. ein \n
    Windows dafür aber ein \n\r ;)
     
Thema: C / C++ Problem mit #define
Die Seite wird geladen...

C / C++ Problem mit #define - Ähnliche Themen

  1. PC startet nicht mehr richtig - CsrBtOBEX-Dienst Problem

    PC startet nicht mehr richtig - CsrBtOBEX-Dienst Problem: hallo, seit einigen tagen habe ich das problem dass mein PC etwa nach jedem 3. mal runterfahren ewig runter fährt (1-2 Min, normal 10-20 sek.) ....
  2. Sharkoon Fire Glider Optical Problem

    Sharkoon Fire Glider Optical Problem: Hallo leute seit ich Windows 10 Habe läuft die Maus irgendwie etwas hackelig und nicht mehr so schön flüsssig wie unter windows 7 über denn...
  3. Windows 10 immer auf Höchstleistung problem

    Windows 10 immer auf Höchstleistung problem: Hallo, Ich habe Windows 10 und bei mir ist in der Energieoption Ausbalanciert eingestellt ( Desktop PC ) Wenn ich nun ein Game Beendet habe z.b:...
  4. Lenkrad Racing Wheel V5 Problem!

    Lenkrad Racing Wheel V5 Problem!: Hallo, Habe mir das Lenkrad wie im Titel genannt gekauft und auch in benutzung. (bis jetzt nur für LS 17 im Betrieb) Treiber installiert gestern...
  5. Rust experimentel problem

    Rust experimentel problem: Hallo, Ich habe bei Rust das Problem wenn ich alles auf hoch habe läuft es flüssig nach zich Metern dan fängt es an etwas zu hängen wenn ich den...