Czytam sobie włąsnie o tym http://cpp0x.pl/kursy/Kurs-C++/Obsluga-plikow/305
Kiedy nie uzyskamy dostępu do pliku
Próba odczytu:
Plik nie istnieje na dysku;
Nie posiadamy uprawnień odczytu do pliku.
Próba zapisu:
Nie posiadamy uprawnień pozwalających nam modyfikować plik;
Nie posiadamy uprawnień do katalogu w którym chcemy utworzyć plik;
Nośnik, na którym chcemy dokonać zapisu jest tylko do odczytu.
Przy zapisie: wszystko działa.
Przy odczycie: Plik istnieje na dysku, został stworzony przez ten właśnie program,
Mam uprawnienia do odczytu pliku, Dowód: wszystko działa, jak napisałem pod swoim pierwszym postem, ale wciąż nie wiem, czemu tamten kod nie działa.
goto A;
A gdzie zastosowanie pętli?
w tym wypadku, jest to raczej projekt, i posłużyłem się goto, ponieważ kod ma <100 linijek, => jest prostsze i wygodniejsze.
A problem nie lezy przypadkiem w tym?
first_name.open("data.txt", ios::out); // próbowałem też first_name.open("data.txt"); , ale z tym samym efektem.
if (first_name.good() == false);
http://www.cplusplus.com/reference/ios/ios/good/
Jeżeli masz flagę ios::out i plik przy otwarciu sie wyczyści, to według tabelki z linku dostaniesz false, prawdopodobnie eofbit...
Nie, ponieważ wycięcie ios::out nic nie dawało, próbowałem
Co do ostatniego postu z kodem: nie działa. błędy:
"1>------ Build started: Project: test, Configuration: Debug Win32 ------
1> test.cpp
1>c:\users\antek\desktop\test\test\test\test.cpp(46): error C2039: 'find': is not a member of 'std::vector<std::string,std::allocator<_Ty>>'
1> with
1> [
1> _Ty=std::string
1> ]
1> c:\users\antek\desktop\test\test\test\test.cpp(12): note: see declaration of 'std::vector<std::string,std::allocator<_Ty>>'
1> with
1> [
1> _Ty=std::string
1> ]
1>c:\users\antek\desktop\test\test\test\test.cpp(47): error C3536: 'it': cannot be used before it is initialized
1>c:\users\antek\desktop\test\test\test\test.cpp(47): error C2678: binary '!=': no operator found which takes a left-hand operand of type 'int' (or there is no acceptable conversion)
1> c:\program files (x86)\microsoft visual studio 14.0\vc\include\system_error(419): note: could be 'bool std::operator !=(const std::error_condition &,const std::error_condition &) noexcept'
1> c:\program files (x86)\microsoft visual studio 14.0\vc\include\system_error(412): note: or 'bool std::operator !=(const std::error_condition &,const std::error_code &) noexcept'
1> c:\program files (x86)\microsoft visual studio 14.0\vc\include\system_error(405): note: or 'bool std::operator !=(const std::error_code &,const std::error_condition &) noexcept'
1> c:\program files (x86)\microsoft visual studio 14.0\vc\include\system_error(398): note: or 'bool std::operator !=(const std::error_code &,const std::error_code &) noexcept'
1> c:\program files (x86)\microsoft visual studio 14.0\vc\include\exception(354): note: or 'bool std::operator !=(const std::exception_ptr &,std::nullptr_t) throw()'
1> c:\program files (x86)\microsoft visual studio 14.0\vc\include\exception(349): note: or 'bool std::operator !=(std::nullptr_t,const std::exception_ptr &) throw()'
1> c:\program files (x86)\microsoft visual studio 14.0\vc\include\exception(344): note: or 'bool std::operator !=(const std::exception_ptr &,const std::exception_ptr &) throw()'
1> c:\users\antek\desktop\test\test\test\test.cpp(47): note: while trying to match the argument list '(int, std::_Vector_iterator<std::_Vector_val<std::_Simple_types<std::basic_string<char,std::char_traits<char>,std::allocator<char>>>>>)'
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped =========="