Frage zu Array



  • Hallo wenn ich das Array char buf auf eine grösse von 2000 setze dann wird mein Text nicht mehr richtig in der Datei abgespeichert.

    Setze ich jedoch das Array auf eine grösse von 1000

    char buf[1000];

    Dann funktioniert es wieder weiss wer woran das liegen kann ?

    Darf das Array nicht grösser als irgendeine bestimmte Zahl sein ?

    #include <iostream>
    #include <fstream>
    using namespace std;
    
    int main(int argc, char* argv[])
    {
    
    ofstream datei ("test.txt");
    
    char buf[2000];
    char *ret ="BBBB";
    
            memset ( buf , 'A' , 4 );
    
            strcat ( buf , ret );
    
            cout<<strlen(buf),
    
            datei.write( buf ,  8);
    
    datei.close();
    return 0;
    }
    //---------------------------------------------------------------------------
    


  • Das füllt das Array mit Nullen:

    char buf[1000] = {};
    

    strcat braucht die Null am Ende des Strings, damit es weiß, wo der andere String angehängt werden soll.


  • Mod

    Falls das nicht bloß eine Übung mit char-Arrays ist: Dir ist bekannt, dass es in C++ wesentlich komfortablere Methoden zum Umgang mit Dateien und ganz besonders mit Zeichenketten gibt?



  • @SeppJ

    Wie kann man das komfortabler lösen ?


  • Mod

    array schrieb:

    @SeppJ

    Wie kann man das komfortabler lösen ?

    Was soll's denn am Ende machen?



  • Das was es jetzt auch schon macht. 🤡



  • array schrieb:

    Das was es jetzt auch schon macht. 🤡

    #include <iostream>
    #include <fstream>
    
    int main()
    {
        std::cout << 8;
        std::ofstream datei ("test.txt");
        datei << "AAAABBBB";
    }
    

    oder "schöner":

    #include <iostream>
    #include <fstream>
    #include <string>
    
    int main()
    {
        std::string s = "AAAABBBB";
        std::cout << s.length();
        std::ofstream datei ("test.txt");
        datei << s;
    }
    

Anmelden zum Antworten