Anzeige:
Ergebnis 1 bis 8 von 8

Thema: Winziger buck in meinem Programm bei Cin und`\0`

  1. #1
    Registrierter Benutzer
    Registriert seit
    06.02.2001
    Ort
    68xxx Mannheim
    Beiträge
    73

    Exclamation Winziger buck in meinem Programm bei Cin und`\0`

    Ich habe ein kleinens Problem mit dem ende Eines string bei der eingabe über cin !

    Am ende jedes string ist doch diese Zeichen '\0' das letzte nur scheint mein Programm da nicht drauf anzuspringen. Wo liegt der fehler ?

    Hier ein Paar code schnipsel:

    PHP-Code:
    .
    ***************
    schnib*************

    cin >> reahlzahl// String einlesen

    ***************schnib*************

    case 
    'A':{cout << "Aktuellezahl: " << reahlzahl[i] << " Ort: " << << " Zustand: " << aktuellerZustand << endl;
                     if((
    reahlzahl[i]=='-')||(reahlzahl[i]=='+')){aktuellerZustand='B';
                      }else if((
    reahlzahl[i]>='0')&&(reahlzahl[i]<='9')){aktuellerZustand='C';

                      }else if (
    reahlzahl[i]==' / 0 'aktuellerZustand='I'// edid wegen forum
                       
                       
    else aktuellerZustand='I';

                     }
                      
    cout << "Aktuellezahl: " << reahlzahl[i] << " Ort: " << << " Zustand-F: " << aktuellerZustand << endl;
                     
    i++;
                     break; 
    Der Buck muß noch raus dann ist das Programm fertig :B

    mfg janosch

  2. #2
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Wie ist reahlzahl deklariert?

    Als string oder char Array?

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  3. #3
    Registrierter Benutzer
    Registriert seit
    06.02.2001
    Ort
    68xxx Mannheim
    Beiträge
    73
    HI !

    So habe ich es deklariert: char reahlzahl[100];

    mfg janosch

  4. #4
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Deklariere es mal als string.

    also
    Code:
    #include <string>
    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        string zahl;
        cout << "zahl:";
        cin >> zahl;
    
        for (uint i = 0; i < zahl.size(); ++i)
        {
            cout << "zahl[" << i << "] = " << zahl[i] << endl;
        }
    }
    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  5. #5
    Registrierter Benutzer
    Registriert seit
    06.02.2001
    Ort
    68xxx Mannheim
    Beiträge
    73
    HI !

    Wenn ich das so mache wie du dann bekomme ich ein fehler mit der funktion atof()

    Die Funktion atof() benötige ich aber . Den mein programm soll ein realhzahle auf korrektheit prüfen mit hilfe eines automaten (Praktikumsaufgabe)also bin ich auf atof() angewiesen . Gibt es ein möglichkeit das zeichen anzuhängen? Ich prüffe dieses zeichen ab damit ich z.b fehler meldung ausgeben kann.
    Am schluß soll dann die atof() die zeichenkette um rechnen

    PHP-Code:

    #include <string>
    #include <iostream>

    using namespace std;

    int main()
    {
        
    string zahl;
        
    cout << "zahl:";
        
    cin >> zahl;

        for (
    int i 0zahl.size(); ++i)
        {
            
    cout << "zahl[" << << "] = " << zahl[i] << endl;
        }
         
        
    cout << atof(zahl);


  6. #6
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    atof erwartet als Parameter ein const char*

    zahl ist ein Instanz der Klasse string.

    Code:
    double f = atof(zahl.c_str());
    sollte gehen.

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  7. #7
    Registrierter Benutzer
    Registriert seit
    06.02.2001
    Ort
    68xxx Mannheim
    Beiträge
    73
    HI !

    Das funktioniert immer noch nicht mit '\0'

    Könnte ich dir mal mein Programm peer PM schicken da ich weiß das hier noch einige aus meinem semester rum lungern und das Programm eine Praktikums Aufgabe war.



    P.S. So wie das programm jetzt aussieht ist es nicht berfegt ich weiß .
    Die Entversion wird so nicht aussehen
    Die ganzen cout's habe ich nur zur kontrolle rein gemacht.

  8. #8
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Original geschrieben von jancarsten
    HI !

    Das funktioniert immer noch nicht mit '\0'
    Das \0 gilt für C Strings, die ja nur char Arrays sind.
    Bei C++ string Variablen ist das nicht nötig.
    Die Länge des Strings ist mit size() (wie in meinem Beispiel) ermittelbar.

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •