ios::nocreate

0

Witam. Mam problem z flagami. Ustawiam flage ios::nocreate i przy kompilacji wyskakuje mi
"coppy.cpp": E2451 Undefined symbol 'nocreate' in function main() at line 15
Przy fladze ios::noreplace jest tak samo..:(
Próbowałem to kompilować w devc++ 4.9.9 i w borlandzie6 personal i jakoś nie moge..:( Ewentualnie jeśli się nie da to jak zrobić żeby program sprawdzał czy plik istnieje i nie tworzył jesłi już jest.

0

podaj kod.
a wczesniej sprawdz czy uzuwasz przestrzeni std;

0

#include <iostream>
#include <fstream>

using namespace std;
int main()
{
ifstream strum;
strum.open("c:/plik.txt",ios::binary,ios::nocreate);
system("pause");
return 0;
}
na razie to chce sie tego nauczyc... więc chodzi mi zeby ten program tylko skompilować- na razie nic nie robi..
Próbowałem też bez "using namespace std;" i dawałem wtedy przy bibliotekach ".h" ale tez nie idzie..:(

0

No moglem w sumie tak od razu, ale zapomnialo mi sie :]
W nowym standardzie nie ma juz tych flag, a spowodowane jest to tym, ze byly one zbyt zalezne od danej platformy, ale masz tu dwa przyklady jak zastapic te flagi ;P

ios::nocreate

fstream fs(?fname?, ios_base::in);// otworz do odczytu
if (!fs)
{
  // jezli nie ma takiego to nie tworzy nwego
}
else //ok, file exists. close and reopen in write mode
{
  fs.close();
  fs.open(?fname?, ios_base::out); // a teraz otworz do zapisu
  // Nigdy nie na odwrot, bo w czasie otwarcia do zapisu jest plik tworzony automatycznie
}

no i no::replace

fstream fs(?fname?, ios_base::in);// attempt open for read
if (!fs)
{
 // plik nie istnieje to go tworzymy
 fs.open(?fname?, ios_base::out); 
}
else //ok, plik istnieje i otwioeramy go ponownie do zapisu
{
 fs.close()
 fs.open(?fname?, ios_base::out); 
}
0

O stary dzięki wielkie bo wszedzie gdzie tego szukałem to tylko znajdowałem ze to stara opcja i nic poza.. a zbytnio nie miałem pojęcia jak ją zastąpić... Ale teraz już w SPACJA końcu wiem i wytykam sobie teraz ze sam na to nie wpadłem..;) Dzięki za pomoc:) tak poza to fajne forum tu jest.. może się tu zarejestruje na stałe...:)

1 użytkowników online, w tym zalogowanych: 0, gości: 1