zapis do pliku - usuwanie zawartości

Odpowiedz Nowy wątek
Zielony635
2015-06-26 14:42
Zielony635
0

Witam, jak zrobić aby dodawać dane do pliku , który od początku ma jakąś zawartość? W tej chwili przy zapisie, plik najpierw jest czyszczony (usuwane są dane z pliku) i dopiero po tym dodawane są nowe elementy. Chodzi mi o to abym z poziomu programu mógł dodawać dane do już istniejących. Podpowie ktoś jak to uczynić?

Pozostało 580 znaków

2015-06-26 14:46

Rejestracja: 6 lat temu

Ostatnio: 18 godzin temu

2

Flaga std::ios::app podczas otwierania pliku.

edytowany 1x, ostatnio: spartanPAGE, 2015-06-26 14:48

Pozostało 580 znaków

Zielony635
2015-06-26 14:47
Zielony635
0

Ok, już wiem. Wystarczy zrobić coś takiego:

 NowyPlik.open("C:\\Users\\user\\Desktop\\plik.txt", ios::app);

Pozostało 580 znaków

Zielony635
2015-06-26 14:48
Zielony635
0
spartanPAGE napisał(a):

Flaga std::ios_base::app podczas otwierania pliku.

A tak btw czym jest flaga w programowaniu? Jak można ją zdefiniować?

Już jej użyłeś. - spartanPAGE 2015-06-26 14:54

Pozostało 580 znaków

2015-06-26 15:25

Rejestracja: 5 lat temu

Ostatnio: 1 miesiąc temu

2

Flaga to pewna ustalona wartość (najczęściej bitowa), która informuje o czymś. Np. jak strumień widzi flagę ios_base::app to wie, że należy dopisać, jak widzi flagę ios_base::binary to wie, że należy traktować plik jako binarny.

Często flaga to jeden określony bit, dzięki czemu jedna zmienna może przechowywać informację o wielu flagach

const int PROTOSS = 1;   // bit na pierwszej pozycji, można też  = 1 << 0
const int ZERG = 2;        // bit na drugiej, 1 << 1
const int TERRAN = 4;    // bit na trzeciej, 1 << 2

int state = getState();
if (state & PROTOSS)    // pierwszy bit ustawiony
    killProtoss();

if (state & ZERG)       // drugi bit ustawiony
    killZerg();

W swoim kodzie możesz używać flagi np. do wyjścia z pętli

bool nalezy_wyjsc = false;
while (!nalezy_wyjsc)
{
    if (jakis_warunek) nalezy_wyjsc = true;
    ...
}

Pozostało 580 znaków

Zielony635
2015-06-26 15:56
Zielony635
0

Mam jeszcze jedno pytanie. Otóż mam vector <string> z nazwami kilku plików. W trakcie działania programu dodaje nowy plik o nowej nazwie. Jak zrobić, aby po ponownym uruchomieniu programu do vectora <string> dodany był ten plik?

Pozostało 580 znaków

2015-06-26 16:00

Rejestracja: 5 lat temu

Ostatnio: 1 miesiąc temu

0
Zielony635 napisał(a):

Otóż mam vector <string> z nazwami kilku plików.
A skąd pochodzą te nazwy? Jak z pliku/bazy (generalnie pamięci, która istnieje poza programem) to dopisz nową nazwę do tego samego miejsca.

edytowany 1x, ostatnio: twonek, 2015-06-26 16:00

Pozostało 580 znaków

Zielony635
2015-06-26 16:02
Zielony635
0

Kilka nazw mam od razu przepisanych do vectora z tablicy, a kolejne chciałem do niego dodawać.

a skąd dane w tej tablicy? - twonek 2015-06-26 16:16

Pozostało 580 znaków

Zielony635
2015-06-26 16:03
Zielony635
0

To najlepszym sposobem jest odczyt nazw z pliku tak?

Pozostało 580 znaków

Zielony635
2015-06-26 16:35
Zielony635
0

A jest jakaś funkcja pozwalająca na zapis każdej nazwy w nowej linii, tak żeby uniknąć wczytywania pustej linii?

Pozostało 580 znaków

Zielony635
2015-06-26 16:56
Zielony635
0

Ok wystarczyło \r\n.

Strzelanie takimi znakami to nienajładniejszy pomysł. - spartanPAGE 2015-06-26 17:01
wystarczy \n - vpiotr 2015-06-26 17:10

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0