Hab ich einen Fehler mit dem ifstream

  • Bitte löschen

    Einmal editiert, zuletzt von minder (4. Dezember 2008 um 20:45)

  • Welchen Typ hat Input? Richtig, ein lokales ifstream-Objekt.
    Welchen Typ hat NULL? NULL = 0, das ist ein Zeiger, die kannst du nicht so einfach vergleichen! ;)

    Wenn du wirklich read verwenden möchtest, solltest du name auch als char* deklarieren, ich vermute bei dir einen string und das wird zu einem Speicherzugriffsfehler führen. Am einfachsten wäre es, den ">>"-Operator zu benutzen, ansonsten:

    Code
    ifstream input ("Test.txt", ios::in);
    if(!input.is_open())
       // Fehler
    int size = input.tellg();
    char* cont = new char[size];
    input.read(cont, size);
    string dateiinhalt(cont);
    delete cont;
    cont = 0;


    Ungetestet...

    Für genauere Details zur Benutzung von ifstream, schau einmal hier.

    Viele liebe Grüße
    The User

  • Hallo The User

    Ich hab noch ne Frage:

    Ich hab einer Funktion den Zeiger auf diese Variabel ¨bergeben "string ciphertext".
    Jetzt möchte ich per append Zeichen ans ende Hinzufügen. Aber es kommt immer folgende Meldung:
    Fehler 1 error C2228: Links von ".append" muss sich eine Klasse/Struktur/Union befinden.


    *ciphertext.append("LOS??");

  • Dafür gibt es doch eine eigene Syntax bei Zeigern:
    ciphertext->append("Los??");
    (wie (*ciphertext).append("Los??"); )
    Hinweis:
    Verwende nicht zu oft Zeiger, der sinnvollste Einsatz ist meistens in der Objektorientierung, wenn er nur auf ein anderes Objekt, das nicht als Zeiger deklariert wurde, zeigt. Das vereinfacht viele Angelegenheiten.

  • Ich wollte eigentlich den ersten Buchstaben zweier Strings vergleichen. Das hab ich so gemacht:
    pclear_text[i] == alphabet[i] (pclear_text wurde per Zeiger an funktion übergeben)

    Leider kommen die Folgenden Fehler:

    Code
    Fehler    13    
    error C2784: "bool std::operator ==(const std::reverse_iterator<_RanIt> &,const std::reverse_iterator<_RanIt2> &)": template-Argument für "const std::reverse_iterator<_RanIt> &" konnte nicht von "std::string" hergeleitet werden.
    Fehler    14    
    error C2784: "bool std::operator ==(const std::reverse_iterator<_RanIt> &,const std::reverse_iterator<_RanIt2> &)": template-Argument für "const std::reverse_iterator<_RanIt> &" konnte nicht von "std::string" hergeleitet werden.
    Fehler    15    
    error C2784: "bool std::operator ==(const std::reverse_iterator<_RanIt> &,const std::reverse_iterator<_RanIt2> &)": template-Argument für "const std::reverse_iterator<_RanIt> &" konnte nicht von "std::string" hergeleitet werden.
    Fehler    16    
    error C2784: "bool std::operator ==(const std::reverse_iterator<_RanIt> &,const std::reverse_iterator<_RanIt2> &)": template-Argument für "const std::reverse_iterator<_RanIt> &" konnte nicht von "std::string" hergeleitet werden.
    Fehler    21    
    error C2784: "bool std::operator ==(const std::pair<_Ty1,_Ty2> &,const std::pair<_Ty1,_Ty2> &)": template-Argument für "const std::pair<_Ty1,_Ty2> &" konnte nicht von "std::string" hergeleitet werden.

    nur ein ausschnitt

  • - lEIDER DOCH NICHT

    Einmal editiert, zuletzt von minder (5. Dezember 2008 um 17:50)