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<<"Wywietlanie 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
😀 genialne
Comments are closed.