Texteingabestrom übergeben basic_istream



  • hallo,

    Ich habe einen Funktionskopf "int testlauf(basic_istream<char>&)". Diese Fuktion erwartet nun einen Texteingabestrom. Aber wie ist es nun möglich ihn zu übergeben?

    Kann da wer vlt. bitte ein paar bsp. Anbringen wie das ausssehen könnte wenn der Eingabestrom aus einer Datei kommt.



  • Hallo

    Streams übergibst du wie alle andern Onjekte auch

    ifstream x;
      testlauf(x);
    

    bis bald
    akari



  • oh doch so einfach. danke 😎



  • Das mit den Strömen hab ich auch nicht verstanden.
    Wenn ich das Problem auf meinen Fall ummünze funktioniert die Übergabe nicht. 😕

    Beispiel:

    #include <iostream>
    #include <fstream>
    #include <string>
    using namespace std;
    
    void read(ifstream &file);
    
    void main(void){
    
       ifstream file;
       string dateiname;
    
       cout << "Name: ";
       cin >> dateiname;
    
       file.open(dateiname);
       read_tree(dateiname);
    
    }
    
    Der fehler hat was mit der Konvertierung des Parameters 1 von std;string zu ifstream zu tun... *irgendwie*
    


  • connyr23 schrieb:

    void main(void)
    

    😮
    Nimm lieber:

    int main()
    

    das ist wenigstens Standard-konform.

    Und open muss mit einem C-String aufgerufen werden. Also:

    file.open(dateiname.c_str());
    


  • Trotz der c_str-Erweiterung schimpft der Compiler immernoch über den Aufruf in der read-Funktion (Welche an sich leer ist.).



  • Oh, hab' ich übersehen.
    Du gibst einen std::string an eine Funktion, die einen std::ifstream erwartet. Ruf die Funktion also mit dem parameter file auf.



  • bei mir findet es die .exe beim debuggen programm ist fehlerfrei was ist das problem???



  • Deine Grammatik.


Log in to reply