Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Zapisywanie tekstu do pliku

Ostatnio zmodyfikowano 2009-06-19 20:48
Autor Wiadomość
Haker123
Temat założony przez niniejszego użytkownika
Zapisywanie tekstu do pliku
» 2009-06-13 22:55:02
Mam pytanko czy da sie jakos skrucic ten program bo sam nie wiem jak go mozna krucej zapisac ;/

C/C++
#include <fstream>
#include <iostream>
using namespace std;
string tablica[ 100 ];
int main()
{
    fstream plik( "plik.txt", ios::out );
    if( plik.good() )
    {
        int a;
        cout << "Ile chcesz wprowadzic zdan?? ";
        cin >> a;
       
        for( int i = 0; i <= a; i++ )
        {
            cout << " ";
            cin >> tablica[ i ];
        }
       
        for( int b = 0; b <= a; b++ )
        {
            plik << tablica[ b ] << endl;
            plik.flush();
        }
        plik.close();
    }
    return( 0 );
}
P-7664
malan
» 2009-06-13 23:18:36
Można np. tak (ale to najkrócej to chyba jeszcze nie jest):
C/C++
#include <fstream>
#include <iostream>
using namespace std;
string tablica[ 100 ];
int main()
{
    fstream plik( "plik.txt", ios::out );
    if( plik.good() )
    {
        int a;
        cout << "Ile chcesz wprowadzic zdan?? ";
        cin >> a;
       
        for( int i = 0; i < a; i++ )
        {
            cout << " "; cin >> tablica[ i ];
            plik << tablica[ i ] << endl;
        }
        plik.close();
    }
    return( 0 );
}
P-7666
Haker123
Temat założony przez niniejszego użytkownika
» 2009-06-14 03:01:41
Mam jeszcze jedno pytanko a raczej prosbe. Chce zrobic zeby 1 plik byl do zapisu i odczytu danych i zaby zawsze zapisywalo nowe wiadomosci na koncu, ale mi to nie wychodzi ;/
jak dodaje do pliku "ios::app" to program nie otwiera pliku a jak to skasuje to niby dziala dobrze ale nie zapisuje nowych zdan ;/ jak skasuje zeby nie bylo tych funkcji z czytaniem zawartosci pliku (ale zostawiam "ios::in") to mi zapisuje.
Ehh nie wiem gdzie robie blad ;/ plz help :(

C/C++
#include <fstream>
#include <iostream>
using namespace std;

string tablica;

int main()
{
    fstream plik( "plik.txt", ios::in | ios::out | ios::app );
    if( plik.good() )
    {
        cout << "Zawartosc pliku:" << endl;
        char dane[ 9999 ];
        plik.read( dane, 9999 );
        cout << dane << endl;
        int a;
        cout << "Ile chcesz wprowadzic zdan?? ";
        cin >> a;
       
        for( int i = 0; i < a; i++ )
        {
            cout << " ";
            cin >> tablica[ i ];
            plik << tablica[ i ] << endl;
        }
        plik.close();
    }
    getchar();
    return( 0 );
}
P-7668
DejaVu
» 2009-06-14 04:15:45
Proponuję nie otwierać jednocześnie pliku do odczytu i zapisu. Otwórz z flagami ios::out|ios::app, jeśli chcesz zapisywać na końcu (ISTNIEJĄCEGO) pliku. Przypuszczalnie powinno działać.
P-7669
malan
» 2009-06-14 11:41:43
A jeśli byś chciał najpierw odczytać dane, a potem je zapisać to byś musiał otworzyć plik 2 razy...:
C/C++
#include <fstream>
#include <iostream>
using namespace std;
int main()
{
    fstream plik( "plik.txt", ios::in );
    if( plik.good() )
    {
        cout << "Zawartosc pliku:" << endl;
        char dane[ 9999 ];
        plik.read( dane, 9999 );
        cout << dane << endl;
        plik.close();
        plik.clear();
        int a;
        cout << "Ile chcesz wprowadzic zdan?? ";
        cin >> a;
        string tablica[ a + 1 ];
        plik.open( "plik.txt", ios::out | ios::app );
        if( plik.good() )
        {
            for( int i = 0; i < a; i++ )
            {
                cout << " ";
                cin >> tablica[ i ];
                plik << tablica[ i ] << endl;
            }
            plik.close();
        }
    }
    getchar();
    return( 0 );
}
P-7672
Haker123
Temat założony przez niniejszego użytkownika
» 2009-06-14 12:12:04
szkoda ze sie nie da zrobic tego z 1 funkcja pliku ;/
malan co do twojego przykladu to dziala ladnie, dzieki ;] tylko ze nie wiem czemu ale czasem program wypisuje podwojnie niekture wyrazy ;/ chociaz w pliku jest napisane tylko raz ;/ no nic bede nad tym myslec potem bo teraz nie mam czasu :(
narazie prosze o niekasowanie tego tematu bo jak znowu bede mial problem to tutaj napisze :P

Pozdrawiam ;]
P-7675
malan
» 2009-06-14 12:31:21
Też to zauważyłem - to wina rozmiaru tych danych ( '9999' ). Wstaw do programu: coś takiego:
C/C++
int dlugosc = 0;
plik.seekg( 0, ios::end );
dlugosc = plik.tellg();
plik.seekg( 0, ios::beg );

char dane[ dlugosc ];

plik.read( dane, dlugosc );
To już jest lepiej, tylko czasami krzaczki wyświetla. Ogólnie to 'read()' to służy do odczytywania danych binarnych (o ile się nie mylę), więc byś musiał zap. je też jako binarne... Dlatego polecam 'getline'... ;p

//Edit:
Aha... no i pamiętaj, że 'cin' zapisuje dane do 1 białego znaku, a zdanie składa się z kilku wyrazów ;].
P-7679
Haker123
Temat założony przez niniejszego użytkownika
» 2009-06-15 02:23:31
Dzieki Malan ;]
Co do tych zdan to mialy byc ale jakos mi nie wyszlo i napotkalem inny problem i zostaly narazie wyrazy ;] jak zrozumie wszystkie funkcje w tym programie i nie bedzie problemu to bede pracowac nad zdaniami ;]

Prosze jeszcze nie zamykac tematu ;] jak do jutra nie natrafie na zaden problem (a mam nadzieje ze nie napotkam :P) to go zamkne ;]

EDIT::

Mam prosbe ;] czy moglbys mi powiedziec powiedziec do czego sluzy funkcja "plik.clear()" szukalem na necie ale nie moge znalesc ;/
P-7716
« 1 » 2 3 4
  Strona 1 z 4 Następna strona