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

Operacje na plikach.

Ostatnio zmodyfikowano 2009-09-09 20:44
Autor Wiadomość
steckel
Temat założony przez niniejszego użytkownika
Operacje na plikach.
» 2009-09-09 20:25:02
Mam problem z zapisem danych do pliku. Program nic nie zapisuje do pliku. Kod:
C/C++
#include <iostream>
#include <fstream>
#include <conio.h>
#include <string>

using namespace std;

fstream file;
string text;
string pathOfFile;
string nick;

void GetWords() {
    cout << "Wprowadz nick: ";
    cin >> nick;
    cout << "Wprowadz temat: ";
    cin >> pathOfFile;
}

void LoadFile() {
    file.open( pathOfFile.c_str(), ios::in );
    if( !file.good() ) return;
   
    text = "";
    while( !file.eof() ) {
        string line;
        getline( file, line );
        text += line + '\n';
    }
    system( "cls" );
    cout << text << endl;
    file.close();
}

void SaveFile() {
    file.open( pathOfFile.c_str(), ios::out );
    for( int index = 0; index < text.size(); index++ ) {
        file << text[ index ];
    }
    file.close();
}

void Writing() {
    while( true ) {
        string say;
        cout << "[" + nick + "]";
        cin >> say;
        if( say == "#exit" ) {
            SaveFile();
            return;
        }
        string message;
        message = "[" + nick + "]" + say + "\n";
        text += message;
        SaveFile();
        LoadFile();
    }
}

int main() {
    GetWords();
    LoadFile();
    Writing();
}
P-10129
DejaVu
» 2009-09-09 20:31:53
C/C++
void SaveFile() {
    fstream pliczek;
    pliczek.open( pathOfFile.c_str(), ios::out );
    pliczek << text.c_str();
    pliczek.close();
}
Jeśli chce się używać tego samego fstream'a do odczytu i zapisu trzeba wyczyścić flagi stanu o ile pamiętam. Nie pamiętam jednak jaką metodę należy wywołać przed ponownym otwarciem pliku w oparciu o tą samą zmienną. Może jest to clear().
P-10130
steckel
Temat założony przez niniejszego użytkownika
» 2009-09-09 20:47:21
Dzięki :D
P-10132
manfred
» 2009-09-09 20:44:46
Wyczyść flagi błędu przed ponownym otwarciem:
file.clear();
P-19290
« 1 »
  Strona 1 z 1