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

Dopisywanie łańcucha string do pliku tekstowego

Ostatnio zmodyfikowano 2009-12-31 12:52
Autor Wiadomość
franz
Temat założony przez niniejszego użytkownika
Dopisywanie łańcucha string do pliku tekstowego
» 2009-12-27 17:54:40
Witam,piszę program,który otwiera plik tekstowy,jego zawartość przypisuje zmiennej string,a tą że zmienną zapisuje w pliku a.txt Następnie program otwiera kolejny plin tekstowy znowu pobiera zawartość do zmiennej2,a tą zmienną dopisuje do pliku a.txt I tak kilka/kilkanaście razy.Przeczytałem kurs z tej strony,otwierać dane z pliku i przypisać je do zmiennej potrafię,program wyświetla je w konsoli,ale nie wiem jak zapisać.Możecie mi podrzucić kod do zapisu / dopisu danych do pliku? Googlowałem troche,jedyne co mi sie udało to,że do pliku zapisywała się,ale tylko ostatnia linijka zmiennejx.

Może jeszcze taki schemacik poglądowy:

fstream ...... //pobieranie danych z 1.txt
1.txt = zmienna1;

zapis zmienna1 do pliku a.txt

fsteam....//pobieranie danych z 2.txt
2.txt = zmienna2;

dopisanie zmienna2 do końca pliku a.txt


I tak kilka razy
Proszę o pomoc,pzdr
P-12522
DejaVu
» 2009-12-27 17:58:21
Opcja 1)
1) otwierasz plik z flagami do zapisu + dopisywania (std::ios::out|std::ios::app <= czy coś podobnego)
2) zapisujesz dane np. za pomocą strumienia plik<<"dane";
Opcja 2)
1) otwierasz plik z flagą do zapisu(std::ios::out)
2) skaczesz na koniec pliku (w kursie jest napisana funkcja jakiej należy użyć)
3) zapisujesz dane np. za pomocą strumienia plik<<"dane";

/edit:
W kursie masz bardzo dobrze opisane flagi. http://kursy.ddt.pl/?LessonId=110. Lepszych materiałów w Internecie raczej nie znajdziesz akurat na temat obsługi plików. Jest tam wszystko czego trzeba. Co jak co, ale nad tym rozdziałem najwięcej siedziałem bo chciałem zamieścić w nim wszystkie niezbędne informacje jakie są przydatne przy korzystaniu z plików. Na innych stronach nie znajdziesz nawet połowy tych informacji.
P-12524
franz
Temat założony przez niniejszego użytkownika
» 2009-12-27 18:22:36
Witam,wiem,że stronka jest jedną z lepszych,z niej uczyłem się C++.Próbowałem masę sposobów żaden nie wychodzi.Próbowałem z ios:app .próbowałem też poprzez pętle i getline() bez efektu. Jakbyś mógł mi napisać jak zmienna1,zmianna2,zmienna3 (bo tyle ich będzie) zapisać po kolei do pliku a.txt .Naprawdę jak pisze coś na forum to już ostatecznośc i znaczy,że nie umiem tematu ogarnąć.
P-12525
DejaVu
» 2009-12-27 18:29:26
getline wczytuje wiersz, a nie go zapisuje.
C/C++
#include <iostream>
#include <fstream>
int main()
{
    using namespace std;
    fstream plik;
    string wiersz;
    cout << "Wprowadz tekst: ";
    getline( cin, wiersz );
    plik.open( "ble.txt", ios::out | ios::app );
    plik << wiersz;
    plik.close();
    return 0;
}
/edit:
A następnym razem wczytaj się w treść kursu i zadaj konkretne pytanie czego z niego nie rozumiesz, bo tak to nic nie jestem w stanie w nim poprawić, a po drugie nie masz żadnego konkretnego argumentu na to, że nie zrozumiałeś czegoś z danego rozdziału.
P-12526
franz
Temat założony przez niniejszego użytkownika
» 2009-12-27 18:38:29
Może bedzie lepiej jak wkleje kod.

C/C++
int main()
{
    string napis1, napis2, napis3, wynik;
    {
        fstream plik1;
        plik1.open( "C:\\free\\a.txt", ios::in );
        while( !plik1.eof() )
        {
            getline( plik1, napis1 );
            cout << napis1 << endl;
        }
        plik1.close();
    }
    //******************
    {
        fstream plik2;
        plik2.open( "C:\\free\\00.html", ios::in );
        while( !plik2.eof() )
        {
            getline( plik2, napis2 );
            cout << napis2 << endl;
        }
        plik2.close();
    }
    //****************************
    {
        fstream plik3;
        plik3.open( "C:\\free\\c.txt", ios::in );
        while( !plik3.eof() )
        {
            getline( plik3, napis3 );
            cout << napis3 << endl;
        }
        plik3.close();
    }
   
    wynik = napis1 + napis2 + napis3;
   
    fstream plik4;
    cout << "Wprowadz tekst: ";
    getline( cin, wynik );
    plik4.open( "C:\\free\\d.txt", ios::out | ios::app );
    plik4 << wynik;
    plik4.close();
    return 0;
   
}
P-12528
DejaVu
» 2009-12-27 18:59:56
No i z tego co wkleiłeś wynika, że nawet się nie zastanawiałeś nad rozwiązaniem, które Ci napisałem tylko bezmyślnie wkleiłeś kod do siebie.
P-12530
franz
Temat założony przez niniejszego użytkownika
» 2009-12-27 19:03:31
Z twojego kodu rozumiem,że getline wczytuje do pliku jedną linijkę,więc trzeba by to jakoś zapętlić?
P-12531
malan
» 2009-12-27 19:06:19
Jeśli chcesz zapisać wszystkie dane, które pobrałeś (napis1,napis2,napis3) do 4 pliku to wystarczy, że przeniesiesz jeden wiersz, a następnie dopiszesz do niego 6 literek i masz ;p. Nie pytaj jaki - sam kombinuj ;p.
P-12532
« 1 » 2
  Strona 1 z 2 Następna strona