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
» 2009-06-16 22:15:12
Masz racje ;] poprostu pruboje wszystkiego co mi wpadnie do glowy :P
ale teraz mniej wiecej wiem co zle robilem ;]
int b zostalo skasowane a string wyglada tak "string zdanie[a];" no ale dalej zapisuje mi tylko jedno pierwsze zdanie :( petla wyglada tak
C/C++
for( int i = 0; i < a; i++ )
{
    cout << "";
    getline( cin, zdanie[ i ] );
    plik.write( & zdanie[ i ][ 0 ], zdanie[ i ].length() );
}

i nie mam pojecia co jest w tym nietak ze zapisuje tylko peirwsze zdanie :(
P-7775
DejaVu
» 2009-06-16 22:37:16
dopisz po cin>>a; następującą linijkę:
cin.sync();
P-7777
Haker123
Temat założony przez niniejszego użytkownika
» 2009-06-17 15:03:28
Ehh nie wiem co jest nie tak :( poddaje sie :( siedze nad tym programem juz 3 dzien i nic nie wymyslilem :( bede wdzieczny jak ktos napisze jak to ma byc zrobione bo mnie trafi :( kurde w nocy nie moge spac rpzez niego i caly czas mysle nad nim :P
oto kod ;]
C/C++
#include <fstream>
#include <iostream>
using namespace std;
int main()
{
    fstream plik( "plik.txt", ios::in );
    if( plik.good() )
    {
        cout << "Zawartosc pliku:" << endl;
       
        int dlugosc = 0;
        plik.seekg( 0, ios::end );
        dlugosc = plik.tellg();
        plik.seekg( 0, ios::beg );
       
        char dane[ dlugosc ];
        dane[ dlugosc ] = 0;
        plik.read( dane, dlugosc );
        cout << dane << endl;
       
        plik.close();
        plik.clear();
    }
    int a;
    cout << "Ile chcesz wprowadzic zdan?? ";
    cin >> a;
    cin.sync();
    string zdanie[ a ];
    plik.open( "plik.txt", ios::out | ios::app );
    if( plik.good() )
    {
        for( int i = 0; i < a; i++ )
        {
            cout << "";
            getline( cin, zdanie[ i ] );
            cout << endl;
            plik.write( & zdanie[ i ][ 0 ], zdanie[ i ].length() );
        }
        plik.close();
    }
    getchar();
    return( 0 );
}
P-7781
malan
» 2009-06-17 15:37:01
Hmm..., ale gdzie jest problem? Skompilowałem go u siebie i działa- zapisuje wszystkie zdania.
P-7782
Haker123
Temat założony przez niniejszego użytkownika
» 2009-06-17 18:25:22
No tak ale wpisze ze chce 2 zdania zapisac a zapisuje 3 oraz zapisuje je w pliku caly czas w jednej linijce a nie linijka pod linijka ;/ ja juz nie mam sily do tego programu :(
P-7785
pekfos
» 2009-06-17 18:55:40
hmm, pomyśle nad nim i przerobie go zaraz

//edit:

sprawdź to:
C/C++
#include <iostream>
#include <fstream>
using namespace std;

int convert( string c ) {
    int value = 0;
    for( int a = 0; a < c.length(); a++ ) {
        if(( int ) c[ a ] >= 48 &&( int ) c[ a ] <= 57 ) value = value * 10 +( int )( c[ a ] ) - 48;
       
    }
    return value;
}

int main() {
    fstream plik( "plik.txt", ios::in );
    if( plik.good() ) {
        cout << "Zawartosc pliku:" << endl;
        int dlugosc = 0;
        plik.seekg( 0, ios::end );
        dlugosc = plik.tellg();
        plik.seekg( 0, ios::beg );
        char dane[ dlugosc ];
        dane[ dlugosc ] = 0;
        plik.read( dane, dlugosc );
        cout << dane << endl;
        plik.close();
    }
    plik.clear();
    plik.open( "plik.txt", ios::out | ios::app );
    string zdanie, bufor = "";
    int ilosc;
    cout << "ile zdan chcesz wprowadzic?" << endl;
    getline( cin, zdanie );
    ilosc = convert( zdanie );
    cout << "no to wprowadzaj:)" << endl;
    for( int a = 0; a < ilosc; a++ ) {
        getline( cin, zdanie );
        bufor +=( bufor == "" ? "": "\n" ) + zdanie;
    }
    plik << bufor;
    plik.close();
    cout << "zapisano, milego dnia";
    getchar();
    return 0;
}

działa?

//edit:

chyba wiem jaka to wada:)
P-7786
malan
» 2009-06-17 19:41:35
Hmm... może zamień:
//Edit:
<<Tu_były_same_bzdury> xd

...oraz dodaj przed 'plik.write()':
zdanie[ i ] += "\n";
Tutaj masz ten program w 'mojej wersji':
C/C++
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
    fstream Plik;
    string Dane;
    unsigned int Ilosc = 0;
    Plik.open( "plik.txt", ios::in );
    if( Plik.good() )
    {
        cout << "Zawartosc pliku:\n";
        while( !Plik.eof() )
        {
            getline( Plik, Dane );
            cout << Dane << endl;
        }
        Plik.close();
        Plik.clear();
    }
    cout << "Podaj ilosc zdan jaka chcesz wprowadzic: "; cin >> Ilosc;
    fflush( stdin ); // Czyszczenie bufora
    string Tablica[ Ilosc ];
    Plik.open( "plik.txt", ios::out | ios::app );
    if( Plik.good() )
    {
        for( int i = 0; i < Ilosc; i++ )
        {
            cout << "Podaj zdanie " << i + 1 << ": "; getline( cin, Tablica[ i ] );
            Tablica[ i ] += "\n";
            Plik.write( & Tablica[ i ][ 0 ], Tablica[ i ].length() );
        }
        Plik.close();
    }
    return 0;
}
;)
P-7790
Haker123
Temat założony przez niniejszego użytkownika
» 2009-06-19 11:55:27
Sorki ze tak dlugo nie pisalem tutaj (egzaminy;/) oba progray dzialaja ladnie ;] chociaz program pekfos ma mala wade ;]
a mam jeszcze jedno pytanko zwiazane z programem malana co to znaczy ze ta funkcja "fflush(stdin);" czysci bufor?? czy chodzi o to ze nie bedzie smieci z bufora??

Jeszcze raz dzieki za pomoc z tym programem ;]
P-7800
1 2 « 3 » 4
Poprzednia strona Strona 3 z 4 Następna strona