[c++] otwieranie pliku
Ostatnio zmodyfikowano 2012-05-19 01:17
slade13 Temat założony przez niniejszego użytkownika |
[c++] otwieranie pliku » 2012-05-18 23:19:48 Witam, napisałem prosty kod do otwierania pliku i nie mogę dostrzec błędu: #include<iostream> #include<string> #include<fstream> #include<conio.h>
using namespace std;
void otw_plik( string pliczek ) { std::fstream plik; plik.open( "pliczek", std::ios::in | std::ios::out ); if( plik.good() == true ) { cout << "uzyskano dostep do pliku!" << endl; } else cout << "Dostep do pliku zostal zabroniony!" << endl; }
int main()
{ string plik = "plik.txt"; otw_plik( plik ); getch(); }
|
|
szyx_yankez |
» 2012-05-18 23:25:02 Przemyśl tą linijkę:
plik.open( "pliczek", std::ios::in | std::ios::out ); |
|
slade13 Temat założony przez niniejszego użytkownika |
» 2012-05-19 00:07:10 właśnie nie wiem jak to zrobić, bo jeżeli zmienna jest w cudzysłowie, to jest traktowana jako tekst, za dużo w php siedziałem i nie ogarniam teraz operacji na plikach w c++ ;x |
|
diego997 |
» 2012-05-19 00:15:21 bez cudzyslowia ;p |
|
slade13 Temat założony przez niniejszego użytkownika |
» 2012-05-19 00:33:04 Przy takiej linijce kodu: plik.open( pliczek, std::ios::in | std::ios::out ); otrzymuję błąd przy kompilacji: C:\Users\*\*\*.cpp||In function 'void otw_plik(std::string)':| C:\Users\*\*\*.cpp|11|error: no matching function for call to 'std::basic_fstream<char, std::char_traits<char> >::open(std::string&, std::_Ios_Openmode)'| c:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\fstream|865|note: candidates are: void std::basic_fstream<_CharT, _Traits>::open(const char*, std::_Ios_Openmode) [with _CharT = char, _Traits = std::char_traits<char>]| ||=== Build finished: 1 errors, 0 warnings ===|
|
|
diego997 |
» 2012-05-19 00:42:53 a spróbuj zamiast tego plik.open( pliczek, std::ios::in | std::ios::out );
dać to plik.open( pliczek.c_str(), std::ios::in | std::ios::out );
|
|
slade13 Temat założony przez niniejszego użytkownika |
» 2012-05-19 01:12:18 No działa! Ale na jakiej zasadzie? Skąd się to wzięło? :D |
|
akwes |
» 2012-05-19 01:17:31 "dsadsdsadsadsa" <- to jest zwykły string, zwany cstrigiem. Czyli tablica liter zakończona znakiem NULL. Można to nazwać char[] lub char *.
std::string jest to rozbudowana klasa przechowująca string oraz udostępniająca odpowiednie funkcje, jedną z tych funkcji (c_str()) jest zwrócenie cstringu (patrz wyżej).
Funkcja otwierająca plik przyjmuje cstring, dlatego trzeba jej dać cstring. |
|
« 1 » |