Mehrere Stringbeispiele von c++ reference funktionieren nicht...



  • Versuch mal das. 😉

    #include<iostream>
    #include<fstream>
    using namespace std;
    
    int main()
    {
            int length;
            char * buffer;
    
            ifstream is;
            is.open ("test.txt", ios::binary );
            if(!is)
            {
                std::cout << "test.txt ist leider nicht erreichbar; Versuchen sie es spaeter wieder!\n";
                return 1;
            }
    
            // bekommt Länge einer Datei
            is.seekg (0, ios::end);
            length = is.tellg();
            is.seekg (0, ios::beg);
    
            // ordnet Speicher zu
            buffer = new char [length];
    
            // liest Daten als einen Block
            is.read (buffer,length);
            is.close();
    
            cout.write (buffer,length);
    
            delete[] buffer;
    
            return 0;
    }
    


  • Ersteinmal danke für die bisherigen Antworten.

    Bashar schrieb:

    put(), wieso benutzt du putchar()?

    Ich habe einmal versucht, es über den Datentyp String zu programmieren.

    Hier der Code:

    #include<iostream>
    #include<string>
    using namespace std;
    
    int main()
    {
      string Buchstabe;
    
      for(Buchstabe='a'; Buchstabe<='z'; Buchstabe++)
        cout << Buchstabe;
    
      return 0;
    }
    

    Jedoch bekomme ich bezogen auf die Zeile 9 folgende Fehlermeldungen:

    Error: Kein "<=" - Operator stimmt mit diesen Operanden überein.
    Error: Kein "++" - Operator stimmt mit diesen Operanden überein.
    

    Wo liegt mein Denkfehler??

    Gruß

    Max



  • silent_max schrieb:

    Wo liegt mein Denkfehler??

    was sollte denn herauskommen, wenn du einen std::string inkrementierst?

    std::string text = "Hallo";
    text++;
    cout << text;  // was sollte hier stehen?
    


  • silent_max schrieb:

    Wo liegt mein Denkfehler??

    Du benutzt (bzw. versuchst es), Operatoren auf einem std::string zu benutzen, die für diesen nicht definiert sind.

    Sagt doch die Fehlermeldung ganz deutlich!



  • daddy_felix schrieb:

    silent_max schrieb:

    Wo liegt mein Denkfehler??

    was sollte denn herauskommen, wenn du einen std::string inkrementierst?

    std::string text = "Hallo";
    text++;
    cout << text;  // was sollte hier stehen?
    

    Welt!



  • daddy_felix schrieb:

    was sollte denn herauskommen, wenn du einen std::string inkrementierst?

    Ich will halt über den Datentyp String das Alphabet ausgeben.



  • silent_max schrieb:

    Wo liegt mein Denkfehler??

    Du vergisst immer wieder, dass char was anderes ist als char[] / char* und auch was anderes ist als std::string .
    Diese drei Typen sind unterschiedlich zu behandeln.



  • DirkB schrieb:

    Diese drei Typen sind unterschiedlich zu behandeln.

    Wie muss ich denn String behandeln, damit ich über String das Alphabet ausgeben kann?



  • silent_max schrieb:

    Wie muss ich denn String behandeln, damit ich über String das Alphabet ausgeben kann?

    gar nicht. das machst du mit "char".



  • daddy_felix schrieb:

    gar nicht. das machst du mit "char".

    Ok.



  • silent_max schrieb:

    Wie muss ich denn String behandeln, damit ich über String das Alphabet ausgeben kann?

    Das kommt drauf an was du dir wie erhoffst.

    int main()
    {
    	std::string abc = "abcdefghijklmnopqerstuvwxyz";
    
    	for(size_t i = 0; i < abc.size(); ++i)
    		cout << abc[i];
    
    	cout << endl;
    
    	for(auto it = begin(abc); it != end(abc); ++it)
    		cout << *it;
    
    	cout << endl;
    
    	for(char c : abc)
    		cout << c;
    
    	return 0;
    }
    

    Sowas wären Möglichkeiten, aber es kommt drauf an was du willst, was du brauchst...


Anmelden zum Antworten