Ascii Zeichen bei ofstream



  • Hallo ich hab folgendes Programm geschrieben.

    #include <iostream>
    #include <fstream>
    using namespace std;
    
    int main()
    {
    
    char key[256];
    char eingabe[256];
    
    cout<<"Eingabe: ";
    cin>>eingabe;
    
    eingabe[256] = '\0';
    
            for (int i=0;i<4;i++)
            {
                    if (eingabe[i] == 'a')
                    {
    
                    key[i] = '1';
    
                    }
    
                    if (eingabe[i] == 'b')
                    {
                    key[i] = '2';
    
                    }
    
                    if (eingabe[i] == 'c')
                    {
                    key[i] = '3';
    
                    }
    
    }
    
    cout<<"Verschl\x81\sslung: "<< key  <<"\n";
    
    ofstream key_txt ("key.txt");
             key_txt<<key;
    
    return 0;
    }
    

    Nur immer wenn ich den Befehl ofstream in das Programm mit eingebe dann kommen immer irgendwelche Ascii Zeichen oder so nach der Ausgabe...

    z.b. sowas ¶’|˜²’|



  • Wenn ich ofstream key_txt ("key.txt"); Global deklariere dann funktioniert es woran liegt das ?

    #include <iostream> 
    #include <fstream> 
    using namespace std; 
    
    ofstream key_txt ("key.txt"); 
    
    int main() 
    { 
    
    char key[256]; 
    char eingabe[256]; 
    
    cout<<"Eingabe: "; 
    cin>>eingabe; 
    
    eingabe[256] = '\0'; 
    
            for (int i=0;i<4;i++) 
            { 
                    if (eingabe[i] == 'a') 
                    { 
    
                    key[i] = '1'; 
    
                    } 
    
                    if (eingabe[i] == 'b') 
                    { 
                    key[i] = '2'; 
    
                    } 
    
                    if (eingabe[i] == 'c') 
                    { 
                    key[i] = '3'; 
    
                    } 
    
    } 
    
    cout<<"Verschl\x81\sslung: "<< key  <<"\n"; 
    
             key_txt<<key;  
             key_txt.close();
    
    return 0; 
    }
    


  • Weiss den keiner woran das liegt o_O



    • char foo[256] hat 256 Werte, von 0 - 255, 256 ist kein gueltiger Index

    - Variablen muessen _IMMER_ initalisiert werden, ansonsten haben sie einen undefinierten Inhalt. Das gilt auch fuer die Datenelemente von Arrays

    - Dateien muessen geschlossen werden, wenn man sie nichtmehr braucht


Anmelden zum Antworten