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

Dopisywanie tekstu do pliku

Ostatnio zmodyfikowano 2009-02-28 14:53
Autor Wiadomość
Jaszczomb
Temat założony przez niniejszego użytkownika
Dopisywanie tekstu do pliku
» 2009-02-28 12:29:54
Witam
Wczoraj wraz z kolegą i pomocą Pana Piotra napisaliśmy program, który szyfruje podane słowo i zapisuje je do pliku szyfr.txt. Problem w tym, że przy następnym użyciu programu treść wygenerowana przez program jest nadpisywana a nie dopisywana. Analizowałem program względem treści kursu i nie wiem gdzie tkwi błąd.
Oto program
C/C++
#include <iostream>
#include <conio.h>
#include "console.ddt"
#include <windows.h>
#include <fstream>
using namespace std;
using namespace ddt::console;
int main()
{
    fstream plik( "szyfry.txt", ios::out | ios::ate );
    if( plik.good() )
         SetConsoleTitle( "Szyfrator" );
   
    string napis;
    int wybor;
    int wybor2;
    do
    {
        cout << "Chcesz zaszyfrowac[1] czy odszyfrowac[2]?" << endl;
        cin >> wybor;
        switch( wybor )
        {
        case 1:
            cout << "Podaj slowo do zaszyfrowania" << endl;
            cin >> napis;
            clrscr();
            for( int i = 0; i < napis.length(); i++ )
            {
                napis[ i ] = napis[ i ] + 3;
            }
            SetConsoleTitle( "Szyfrator" );
            cout << "Oto kod zaszyfrowany" << endl;
            cout << napis << endl;
            plik << "\n" << endl;
            plik << napis << endl;
            plik.flush();
            break;
        case 2:
            cout << "Podaj zaszyfrowane slowo do odszyfrowania" << endl;
            cin >> napis;
            clrscr();
            for( int i = 0; i < napis.length(); i++ )
            {
                napis[ i ] = napis[ i ] - 3;
            }
            SetConsoleTitle( "Szyfrator" );
            cout << "Oto odszyfrowane slowo" << endl;;
            cout << napis << endl;
            plik << "\n" << endl;
            plik << napis << endl;
            plik.flush();
            break;
        }
        plik.close();
        cout << "Czy chesz zaszyfrowac lub odszyfrowac inne slowo? 1= Tak 2= Nie" << endl;
        SetConsoleTitle( "Szyfrator" );
        cin >> wybor2;
    }
    while( wybor2 < 2 );
   
    clrscr();
    cout << "+---------------------------------------------------------+" << endl;
    cout << "|Napisane przez Tomasza i Michala                         |" << endl;
    cout << "|Na potrzeby naukowe. Program zostal napisany w jezyku C++|" << endl;
    cout << "|I opiera sie na szyfrze cezara                           |" << endl;
    cout << "+---------------------------------------------------------+" << endl;
    SetConsoleTitle( "Szyfrator" );
    getch();
    return 0;
}
Z góry dzięki za każdą pomoc ;]
P-4536
GoldWolf
» 2009-02-28 12:46:00
fstream plik( "szyfry.txt", ios::out | ios::ate );
Na początek
ios::ate ->Otwórz w podanym trybie i przejdź na koniec,
spróbuj:
ios::app ->Otwórz do zapisu, zapisz wyłącznie na końcu pliku
P-4537
Jaszczomb
Temat założony przez niniejszego użytkownika
» 2009-02-28 19:31:00
Dzięki za pomoc Panowie. Pozdrawiam.
P-4567
manfred
» 2009-02-28 14:53:40
std::ofstream plik( "foo.g", std::ios_base::app );
P-18768
« 1 »
  Strona 1 z 1