Co myślicie o używaniu funkcji C (np. do operacji na plikach - fopen() itp.) w C++?
Wykonalne, ale niezalecane bez wyraźnej przyczyny.
Jakie to przyczyny na przykład?
Co to w ogóle za pytanie!?
chociaż...
fstream jest na 100% wygodniejszy itd.Tyle w temacie.
Co myślicie o używaniu funkcji C (np. do operacji na plikach - fopen() itp.) w C++?
Myślę że ja ich używam zawsze i do wszystkiego (żadnych fstreamów), co wcale nie znaczy że jest to dobra rzecz.
Dopóki nie pracujesz w (większym) zespole albo wykładowca/nauczyciel nie obleje cie za to używaj po prostu tego co ci jest wygodne.
Przyczyna jest, jak już się dowiedziałeś, niewyraźna.
Generalnie na wszystko (no powiedzmy znaczną większość) jest odpowiednik obiektowy w C++. I to jest chyba ta przyczyna.
Ale zgodność z C jest badzo wysoka, całe programy w C można kompilować jako C++ z najwyżej niewielkimi poprawkami.
fopen bierze argumenty jako string. STRING.
kretynstwo. do tego nie jest to natywna funkcja zadnego os.
Wiec nie uzywac, no chyba ze w php, bo tam raczej nie ma czego innego.
qwe12 napisał(a)
Wiec nie uzywac...
Niby dlaczego ? Podobnie jak MSM caly czas z tego korzystam, jesli cos pisze w C++. To, ze nie nalezy do systemu nie ma zadnego znaczenia. Predzej bym powiedzial, zeby open nie uzywac ;>
raz ze zwraca FILE*
dwa ze nie obsluguje unicode
trzy ze argumenty bierze w stringu
cztery ze nie mozna okreslic praw jakie chce sie miec
piec ze funkcje operujace na FILE* sa z*****e .
szesc ze jest z msvcrt pod windowsem
windows ma CreateFileW, linux sys_creat.
siedem ze std/in/out/err uzywane w funkcjach pochodnych jest stale.
qwe123 napisał(a)
raz ze zwraca FILE*
Argument nie do podwazenia...
qwe123 napisał(a)
dwa ze nie obsluguje unicode
Trudno, jest to wada, ale zeby od razu nie uzywac ?
qwe123 napisał(a)
trzy ze argumenty bierze w stringu
Nie, bierze w const char *
qwe123 napisał(a)
cztery ze nie mozna okreslic praw jakie chce sie miec
Mozna.
qwe123 napisał(a)
piec ze funkcje operujace na FILE* sa z*****e .
?
qwe123 napisał(a)
szesc ze jest z msvcrt pod windowsem
A tego nie wiem, czy pochodzi z msvcrt, ale nie zaprzeczalne jest to, ze tam jest zdefiniowane, wiec kolejny argument nie do podwazenia.
Co do tych dwoch funkcji to obie przyjmuja wskazniki na char.
Czemu nie używam do prostego wczytywania (nie tylko otwierania plików) strumieni? Bo jakoś denerwuje mnie, gdy do pobrania tekstu od użytkownika w języku bliskim maszynie (nie napiszę że niskopoziomowym bo flame rozpocznę) muszę korzystać z obiektowości (!), dziedziczenia (!!) i przeciążenia operatorów (!!!).
Zapomniałeś dodać, że to dziedziczenie jest wirtualne i dosyć karkołomne...
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.