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

Problem z zapisem do pliku.

Ostatnio zmodyfikowano 2013-04-29 18:09
Autor Wiadomość
kejkun
» 2013-04-28 19:08:48
no bo ma problem zapisać do pliku prawda, i nie jestem pewien czy jest to tylko wina ścieżki.
P-81410
kanam99
Temat założony przez niniejszego użytkownika
» 2013-04-28 19:09:06
@Kejkun Tylko po co?
fstream
 ma i wyjście i wejście. Pozatym, przecież można dać dwie flagi na strumień (in i out). A dlaczego miałbym dawać do innego pliku? Co w tym jest źle?

@Pekfos Daję tylko nazwę pliku (tam sam folder co plik .exe), ale wtedy dostaję złą wersję komunikatu ;)
P-81411
pekfos
» 2013-04-28 19:14:07
Daję tylko nazwę pliku (tam sam folder co plik .exe), ale wtedy dostaję złą wersję komunikatu ;)
Jakiego komunikatu? Podałeś dobrą nazwę (np
"plik.txt"
)?
P-81412
kanam99
Temat założony przez niniejszego użytkownika
» 2013-04-28 19:17:42
@Up Tak. I dostaję komunikat "Cos pieprzlo".

@Edit Jakby co, teraz muszę wyjść i wrócę za jakieś 1,5h
P-81414
pekfos
» 2013-04-28 19:35:13
Spróbuj tak (i kod z pierwszego postu, który otwierał plik):
C/C++
plik >> m; //linia z twojego kodu
plik.seekg( 0, ios::beg );

//edit:
C/C++
plik >> m;
plik.clear(); //wyczyść flagi błędu, powinno być ok
P-81420
kanam99
Temat założony przez niniejszego użytkownika
» 2013-04-29 18:09:44
Z problemem sobie poradziłem. Wystarczyło w pętli dać za każdym razem otwarcie i zamknięcie strumienia. Oto kod:
C/C++
#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main()
{
    int m;
    string znak;
    fstream plik;
    plik.open( "liczba.txt", ios::in | ios::out );
   
    if( plik.is_open() == true )
         cout << "Plik otwarto" << endl;
    else
    {
        cout << "Cos pieprzlo" << endl;
        return 0;
    }
    plik >> m;
    plik.clear();
    plik.close();
    cout << "Podaj 'w' dla dodania 1, podaj 'x' dla wyjscia" << endl;
    while( true )
    {
        plik.open( "liczba.txt", ios::in | ios::out );
        cout << "Podaj 'w' dla dodania 1, podaj 'x' dla wyjscia" << endl;
        cin >> znak;
        if( znak == "w" )
             m++;
       
        if( znak == "x" )
        {
            plik << "";
            plik << m;
            cout << plik << endl;
            plik.close();
            cout << "Dowidzenia :D";
            return 0;
        }
        if( znak != "x" & znak != "w" )
             cout << "Zly znak" << endl;
       
        plik << "";
        plik << m;
        cout << m << endl;
        plik.close();
    }
}
Dziękuję wszystkim za pomoc i pozdrawiam.
P-81521
1 « 2 »
Poprzednia strona Strona 2 z 2