Właśnie walnęłam sobie taki kodzik:
#include <iostream> #include <string> #include <fstream> #include <boost/filesystem.hpp> #pragma hdrstop using namespace boost::filesystem; using namespace std; int main(int argc, char** argv){ //nagłówek cout<<" ..::Ksero::.."; cout<<"nProgram kopiuje jeden plik tekstowy do drugiegon"; cout<<"i nic więcej.n"; //help programu if (argc ==2 && (string)argv[1]=="--help"){ cout<<"Użycie:n"; cout<<argv[0]<<" <plik wejściowy> <plik wyjściowy>n"; cout<<"Plik wyjściowy nie może istnieć."; return 0; } //Zauważmy, że help jest już obsłużony if (argc != 3){ cerr<<"Błędne wywołanie. Spróbuj "<<argv[0]<<"--help"; return 1; //error number 1: błąd wywołania programu } //Parametry mamy obsłużone. Zajmijmy się plikiem wejściowym ifstream zpliku (argv[1]); if (zpliku==0){ cerr<<"Błąd otwarcia pliku wejściowego."; return 2; //error number 2: Błąd otwarcia pliku wejściowego } //Teraz plik wyjściowy. Najpierw sprawdzimy czy istnieje. Nie powinien if(exists (argv[2])){ cerr<<"Plik już istnieje. Wybierz inną nazwęn"; return 3; //error number 3: plik wyjściowy istnieje } //No ok ofstream dopliku (argv[2]); if (dopliku==0){ cerr<<"Błąd otwarcia pliku wyjściowego."; return 4; //error number 4: Błąd otwarcia pliku wyjściowego } //No ok. Chyba obsłużyłam większość błędów, które mi przyszły na myśl. string s; //Bufor tymczasowy na linijkę tekstu z pliku while (getline(zpliku, s)){ dopliku<<s<<"n"; //Bo getline usuwa znak końca linii } cout<<"Operacja zakończona powodzeniem.n"; return 0; }
Wkurzałam się, bo kod mi się nie kompilował. Myślałam że lib jest zły. Skompilowałam ten ze strony producenta. Dalej kod się wykrzacza. Błąd linkera. WT kurrr F? Rozwiązanie? Proste
Należało kod skompilować w następujący sposób
g++ -o ksero pliczek.cpp -lboost_filesystem_mt
a tego po myślniku mi brakowało:)
4 komentarze
Po co pisać taki kodzik nie lepiej użyć cat’a ?
To było tylko po to, by sobie potrenować. Kod nie był podyktowany potrzebą posiadania takiego narzędzia.
No tylko nie wiem co ty tutaj trenowałaś, czytanie dokumentacji ?
Heh kto by pomyślał że używając boost’a trzeba go dolinkować.
Po prostu wcześniej liby mi IDE linkowało:p
Comments are closed.