Zapisywanie do pliku... ?
Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Zarejestruj się!

Zapisywanie do pliku... ?

AutorWiadomość
Temat założony przez niniejszego użytkownika
Zapisywanie do pliku... ?
» 2009-01-05 13:02:50
Cześć!

Jestem tutaj nowy, nazywam się Adam mam 17 lat, programowanie... moje hobby... chyba ;). Mam pewien problem, stworzyłem program, on tworzy pewien tekst. Moje pytanie, jak ten tekst który wygenerował program zapisać np. na pulpit, w postaci txt. Przepraszam za mało zrozumiałe wytłumaczenie, ale inaczej nie potrafię tego wyjaśnić :). Czytałem, tą część tutoriala, o zapisywaniu i odczytywaniu, ale nie bardzo to rozumiem.
P-3401
» 2009-01-05 13:19:35
No cóż, aby zapisać na pulpit to trzeba sobie adres tegoż odczytać, a to łatwe nie jest. Do folderu z programem to będzie tak:
C/C++
#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    fstream plik;
    plik.open( "foo.txt" ); //otwieramy plik
    plik << "bar"; //zapisujemy do pliku, używamy tego podobnie jak cout
    return 0;
}
P-18694
» 2009-01-05 13:20:29
C/C++
fstream plik;
plik.open( "bleble.txt", ios::out );
plik << "jakiś tekst" << endl;
plik.close();
Hm... napewno czytałeś dokładnie lekcję kursu?
P-3403
Temat założony przez niniejszego użytkownika
» 2009-01-05 13:44:18
C/C++
#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    fstream plik;
    plik.open( "foo.txt" ); //otwieramy plik
    plik << "bar"; //zapisujemy do pliku, używamy tego podobnie jak cout
    return 0;
}

hmmm ale ja chciałem zapisać to co wygenerował program a nie jakiś tekst.
P-3404
» 2009-01-05 14:00:50
Cóż... to polecam się cofnąć jakieś 15 rozdziałów (albo i jeszcze wcześniej) i zrozumieć podstawy podstaw :)
P-3405
» 2009-01-05 17:57:28
C/C++
fstream plik;
plik.open( "bleble.txt", ios::out );
plik << "jakiś tekst" << endl;
plik.close();

Hm... napewno czytałeś dokładnie lekcję kursu?

Hm... "napewno" (did you mean na pewno?) wiem co mówi standard:
C/C++
explicit fstream( const char * filename,
ios_base::openmode mode = ios_base::in | ios_base::out );
//oraz
void open( const char * filename,
ios_base::openmode mode = ios_base::in | ios_base::out );
Jak widać ios::out zasadniczo zbędne, domyślnie mamy i in, i out. Jak sam out to ofstream zawsze jest (zresztą ofstream jakby mniejszy - nie jest iostreamem tylko ostreamem). Co do close - tak się "przypadkowo" składa, że destruktor fstreama (a ściślej filebufa) wywołuje close jeśli plik jest otwarty...

@topic:

Hm. Może coś takiego:
C/C++
#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    ofstream plik( "foo.txt" );
    filestream * cout_rdbuf = cout.rdbuf();
    cout.rdbuf( plik.rdbuf() );
    // tu używamy cout, ale zapisuje do pliku
    cout.rdbuf( cout_rdbuf ); //warto by przywrócić rdbuf coutowi
    return 0;
}

Jak nie o to chodzi to może:

C/C++
#include <iostream>
#include <fstream>

using namespace std;

class CMyStrumien // :D
{
    fstream plik;
public:
    ~CMyStrumien() { }
    CMyStrumien()
        : plik( "bar.txt" )
    { }
    CMyStrumien( const char * nazwa )
        : plik( nazwa )
    { }
    template < typename T >
    CMyStrumien & operator <<( T co )
    {
        cout << co;
        plik << co;
        return * this;
    }
} strumien;

int main()
{
    strumien << "Foo!"; //Foo! idzie i na cout, i do pliku
    return 0;
}
P-18695
» 2009-01-05 18:06:05
można prościej zapisywać do pliku:
C/C++
fstream plik;
plik.open( "twój_plik.txt", std::ios::out );
plik << zmienna_z_wygenerowanym_tekstem;
plik.close();
chyba o to chodzi:)
P-3432
» 2009-01-05 18:09:55
Gratulacje... Trzeci post o tym samym. Autorowi chodzi o zapisywanie tego co generuje program a nie o samo wysłanie do fstreama tekstu (chyba). Kod działający jak twój i o takiej długości rzuciłem jako pierwszy, potem nasz szanowny admin postanowił się przyczepić mimo mizernej wiedzy (no co, standard kontra Piotr, nie ma o czym mówić...), a teraz ty wylatujesz... Ossochozi?

/edit:
no baaa... na 99% po tym poście dostanę pięknego banana, oczywiście "zasłużenie", za to, że znam cppreference...
P-18697
« 1 » 2
 Strona 1 z 2Następna strona