Beispielprogramm 2



  • Auch dieses Programm funktioniert (wahrscheinlich)

    #include <iostream> 
    #include <fstream>  
    
    using namespace std;
    
    main(int argc, char * argv[])
    {
        char ch;
        int anzahl = 0;
    
        if (argc != 3){
            cerr << "Aufruf: 37 quelle ziel\n";
            exit(1);
        }
    
        ifstream fin(argv[1]);	
        ofstream fout(argv[2]); 
    
        if (!fin) {           
            cerr << "Datei " << argv[1] << " kann nicht geoeffnet werden!\n";
            exit(1);
        }
        if (!fout) {           
            cerr << "Datei " << argv[2] << " kann nicht geoeffnet werden!\n";
            fin.close();       
            exit(1);
        }
    
        while (fin.get(ch) && fout) {   
            if ((ch >= 'a') && (ch <= 'z'))
            ch += 'A' - 'a';   
            anzahl++;
            fout.put(ch);      
        }
        cout << "Dateigroesse: " << anzahl << " Zeichen\n";
    
        fin.close();            
        fout.close();           
    }
    

    Doch verstehe ich es nicht wirklich. Z.B. die Parameterübergabe an main.

    (int argc, char * argv[])
    

    Nur der Aufruf wird ausgegeben. Weder die Fehlermeldungen, noch die Umwandlungen von Buchstaben. Was wird wirklich in diesem Programm gemacht?



  • if ((ch >= 'a') && (ch <= 'z'))
    ch += 'A' - 'a';
    

    es wird wohl an der umwandlung liegen.
    du musst es wohl anders in ASCII zahlen umwandeln.

    gg

    edit

    er wartet auf 3 parameter.

    deinprogramm eingabe.txt ausgabe.txt



  • xGhost schrieb:

    es wird wohl an der umwandlung liegen.
    du musst es wohl anders in ASCII zahlen umwandeln.

    Nö, das stimmt schon so. Die Zeichen repräsentieren ja nur den ASCII-Code.

    @Luka_one
    Das Programm öffnet zwei Dateien, deren Pfad du dem Programm als Argumente übergeben musst; die eine öffnet er zum Lesen (muss vorhanden sein, siehe "if(!fin)..."), die andere zum Schreiben.
    Dann liest es nacheinander die einzelnen Zeichen der ersten Datei ein, prüft, ob es ein Kleinbuchstabe ist, falls ja, wandelt es das Zeichen in einen Großbuchstaben um, und schreibt es in die zweite Datei.


Anmelden zum Antworten