[C/C++] char??

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von xXsoureXx, 7. April 2008 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 7. April 2008
    char??

    Hi

    mir ist ein Problem aufgefallen, was ich mir irgenwie nicht erklären kann....
    Code:
    #include <iostream>
    using namespace std;
    
    int main()
    {
     char a;
     char* b; b=&a;
    
     char aa;
     char* bb; bb=&aa;
    
     bb="test";
    
     cout << "gibt bitte 'test' ein\n\n";
     cin >> b;
    
     if (b!=bb)
     {
     cout << "Die Eingabe war nicht 'test'\n";
     system("PAUSE");
     }
     else
     {
     cout << "gut\n";
     system("PAUSE >nul");
     }
    }
    
    was ich jetzt nicht verstehe ist, das ich die bedingung bei if IMMER erfülle... auch wenn
    ich test eingebe
    ich habe natürlich auch schon die variablen geprüft:
    cout << b << " " << bb;
    bei beiden stand 'test'!!!!
    ich versteh nicht warum es net geht?(

    Als compiler benutze ich DEV-C++

    das ganze möchte ich OHNE den string lösen..

    BW is klar ne

    MFG
    xXsoureXx

    SUFU: hab nach 10 min nix gefunden.....
    google konnte mir auch net helfen^^
     
  2. 7. April 2008
    AW: char??

    Du kannst nicht einfach mit == Vergleichen, da so nur die Addressen (b und bb sind ja zeiger) verglichen werden.
    Du musst strcmp verwenden.

    Also so:
    Code:
    if (strcmp(b, bb) == 0) // == 0 bedeutet strings sind gleich
    {
    cout << "Eingabe war test" << endl;
    }
    else
    {
    cout << "Eingabe war nicht test" << endl;
    }
     
  3. 7. April 2008
    AW: char??

    hm das prog ist imho müll.

    Code:
    char a;
    char* b; b=&a;
    b ist en zeiger auf ein char da passt 1 buchstabe rein.
    Code:
    cin >> b;
    
    kann dann zu fehlern führen das es bei dir gefunkt hat ist glück mehr nicht. So wie du deine variablen deklarierst sowas hab ich noch nie gesehen und zwar aus gutem grund -> doppelt gemoppelt.
    Du machst ne variable und machst dann nen zeiger davon um drauf zuzugreifen. Drängt sich mir die frage auf wieso net direkt?
    Lösung:
    Code:
    char b[1337];
    
    
    std::cin >> b;
    
    einfacher:
    Code:
    #include <string>
    std::string b;
    std::cin >> b;
    
    Code:
    char aa;
    char* bb; bb=&aa;
    
    bb="test";
    Das ist auch müll. lass das mit der adresse ziehen weg und dem aa "test" passt net in ein char wieder ist es nur glück das dein prog tut. Ist extrem schlechter programmier stiel solltest dir abgewöhnen. Wer will schon en prog das manchmal tut und manchmal net...
    Code:
    char* bb;
    
    bb = "test";
    
    Das wär zulässig.

    Dann halt die noch die vergleichs funktion ändern wie pyro so toll mit einem beispiel erklärt hat.

    mfg tobZel
     
  4. 8. April 2008
    AW: char??

    danke an euch tzwei
    bw is raus

    MFG
    xXsoureXx
     
  5. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.