[c++] fstream

0

Witam
Mam problem z edycją plików binarnych. Gdy zapiszę sobie dwie takie same struktury do pliku, nie wiem jak je pÓźniej edytować. Chyba źle otwieram plik ponieważ tracę wszystkie dane przy próbie edycji i w pliku istnieje tylko ta struktoóra która powinna zastąpić inną, a rozmiar pliku nie zmienia się. Plik do edycji otwieram tak:

plik.open("binary.dat", ios::out|ios::ate|ios::binary);

.
Szukałem, ale nic nie znalazłem o edycji.
Z góry dzięki

0
konrad_st napisał(a)

Witam
Mam problem z edycją plików binarnych. Gdy zapiszę sobie dwie takie same struktury do pliku, nie wiem jak je pÓźniej edytować. Chyba źle otwieram plik ponieważ tracę wszystkie dane przy próbie edycji i w pliku istnieje tylko ta struktoóra która powinna zastąpić inną, a rozmiar pliku nie zmienia się. Plik do edycji otwieram tak:

plik.open("binary.dat", ios::out|ios::ate|ios::binary);

.

Szukałem, ale nic nie znalazłem o edycji.

Ale czytasz w ogóle odpowiedzi na swoje posty??
http://4programmers.net/Forum/viewtopic.php?id=75464

Tu masz w moim poście tryby otwarcia dla fstream...
http://4programmers.net/Forum/228595?h=fstream#228595

0

Dzięki działa tamto co napisałeś wcześniej.

P.S. Myślałem że skasowali tamten temat.

0
konrad_st napisał(a)

Dzięki działa tamto co napisałeś wcześniej.

P.S. Myślałem że skasowali tamten temat.

To włączaj obserwację tematu...

0

A jeżeli można to chciałbym się podłączyć do tematu i przedstawić swój problew związany z odczytywaniem pliku. Nie rozumiem dlaczego do odczytania pliku muszę mieć zadeklarowaną jakąkolwiek zmienną liczbową tak jak poniżej. W przeciwnym wypadku następuje nioczekiwane zamknięcie programu.

#include <iostream> 
#include <fstream> 

using namespace std; 
 
int main() 
{ 
    int a; // Bez tej zmiennej program sie wywala
    char* b;
     
    ifstream plik( "Napis.txt" ); 
    plik >> b;
    cout <<  b << endl; 
    plik.close(); 
    
    system("pause"); 
    return 0; 
}
0
#include <iostream> 
#include <fstream> 

using namespace std; 
 
int main() 
{ 

    char  b[256];
     
    ifstream plik( "Napis.txt" ); 
    plik >> b;
    cout <<  b << endl; 
    plik.close(); 
    
    system("pause"); 
    return 0; 
}

Nie przydzieliłeś pamięci na napis

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