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

seekp() - usuwa zawartosc

Ostatnio zmodyfikowano 2017-03-01 21:19
Autor Wiadomość
Lich555
Temat założony przez niniejszego użytkownika
seekp() - usuwa zawartosc
» 2017-02-28 22:11:28
Witam.
Mam taki problem:
C/C++
#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    char tekst[] = { "Kacper\n" "To\n" "Swietny\n" "Gosc" };
    fstream strum( "Plik1.txt", ios::in | ios::out );
   
    strum << tekst;
    //pozycjonowanie kursora pisania na 7 bajt
    strum.seekp( 7 );
    strum << " Jestes tutaj. ";
    //pozycjonowanie kursora pisania na 4 bajt od konca
    strum.seekp( - 4, ios::end );
    strum << " Teraz jestes tutaj. ";
   
    return 0;
}
Rezultat tego to: Kacper Jestes tutaj. Teraz jestes tutaj.
Oczekiwany rezultat: Kacper Jestes tutaj. To Swietny Teraz jestes tutaj. Gosc
Co poszło nie tak? :P
P-158402
czaffik
» 2017-02-28 23:14:50
1: http://en.cppreference.com/w/cpp/io/basic_ostream/seekp
2:
C/C++
#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    char tekst[] = { "Kacper\n" "To\n" "Swietny\n" "Gosc" };
    fstream strum( "Plik1.txt", ios::in | ios::out );
   
    strum << tekst;
    //pozycjonowanie kursora pisania na 7 bajt
    strum.seekp( 7 );
    strum << "1";
    //pozycjonowanie kursora pisania na 4 bajt od konca
    strum.seekp( - 5, ios::end );
    strum << "2";
   
    return 0;
}
Wynik: "Kacper1To\nSwietny2Gosc"
Mówiąc inaczej funkcja nie zadziałała zgodnie z twoimi przewidywaniami :P
P-158406
Lich555
Temat założony przez niniejszego użytkownika
» 2017-03-01 20:19:54
Czyli to co chciałem wpisać w miejsce pokazane przeze mnie wskaźnikiem nadpisywało stary tekst? Jest jakaś możliwość, by - używając tej funkcji - nie nadpisywać, lecz "przesuwać" tekst?
P-158421
pekfos
» 2017-03-01 21:19:31
Jeśli sam go sobie 'przesuniesz', to tak.
P-158422
« 1 »
  Strona 1 z 1