Press "Enter" to skip to content

dobra, wracamy na ziemię

Hmm, kilkanaście, może kilkadziesiąt minut, aby pokapować się, że otwartego pliku usunąć się nie da;) Nooo nieładnie Piątkosia. Idlecode: gdzie tu niby miałby być haczyk?

#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <fstream>
using namespace std;

int main(int argc, char* argv[]){
    system("chcp 1250>NUL");
    if ((argc <2) || (argc > 3)){
        cerr<<"\nBłąd wywołania. Spróbuj "<<argv[0]<<" --help";
        system("chcp 852>NUL");
        exit(1); //Błąd wywołania
    }
    if (argc ==2){
        if ((string)argv[1]=="--help"){
            cout<<"Program zmienia nazwę pliku na innš.\n";
            cout<<"Użycie: "<<argv[0]<<" <stara_nazwa> <nowa_nazwa>\n";
            cout<<"Wyœwietlanie działa poprawnie przy czcionce Lucida console. \n Zmień w razie potrzeby";
            system("chcp 852>NUL");
            exit(0); //poprawne zakończenie funkcji przy helpie
        }
        cerr<<"\nBłąd wywołania. Spróbuj "<<argv[0]<<" --help";
        system("chcp 852>NUL");
        exit(1); //błšd wywołania
    }
    //Spróbujemy otworzyć pliki do odczytu, by upewnić się że możemy na nich działać
    fstream testowy, testowy2;
    testowy.open(argv[1], ios::in|ios::binary);
        if (!testowy.good()){
            cerr<<"\nNie odnaleziono pliku lub brak dostępu do niego.";
            system("chcp 852>NULL");
            exit(2); // Nie można pracować z plikiem
        }
    testowy.close();
    testowy2.open(argv[2], ios::in|ios::binary);
    if (testowy2){
            char a;
            cout<<"\nPlik docelowy istnieje. Nadpisać? T/N: ";
            cin>>a;
            while(1){
            if (toupper(a) == 'T'){
                testowy2.close();
                remove(argv[2]);
                break;
            }
            else if (toupper(a) == 'N'){
                cerr<<"\nPlik o podanej nazwie już istnieje. Kończę.\n";
                testowy2.close();
                system("chcp 852>NUL");
                exit(3);
                }
            else {
                cout<<"\nNadpisać? T/N:  ";
                cin>>a;
                continue;
            }

        } //od while 1
    }
//Mamy obsłużone podstawowe błędy, przejdziemy do sedna;
  rename(argv[1], argv[2]);
} //od main

Programik nic poza zmianą nazwy nie robi. Ale działa, żeby nie było:)

One Comment

  1. fxa fxa

    😀 genialne

Comments are closed.