Tiedostoon kirjoitus [c++]

tiedän että tiedostoon voidaan kirjoittaa näin;
...
   ofstream e("testi.txt", ios_base::app);
   cout s;
   e
71180
Äänestä

Muut lukivat myös

Vastaukset 7

Vanhimmat

Jos haluat että tiedostossa oleva data säilyy, on koko roska kirjoitettava uusiksi. Muuten sinne ei saa väliin lisättyä tavaraa.

Äänestä
  • ifstream lue
    ifstream ohita muutettu rivi
    ja korvaa se.
    lue edelleen tulostiedostoon
    ofstream tulos

    Äänestä

Auttaneeko????

-Ei tarvitse kirjoittaa kaikkea uudestaan.
-Tutki tiedostoa rivi kerrallaan esim. getline().
-Täytyy tietää rivinumero tai jokin hakuehto rivi.

-Sitten muutetaan string(rivi),kun ollaan sen kohdalla(break).
Alkuperäinen tiedosto ifstream ja tulostiedosto ofstream ja
avatan alkuperäinen tiedosto ja tulostiedosto ja luetaan rivi ker-
rallaan tulostiedostoon.
ifstreamissa ohitetaan muutettu rivi ja korvataan (string rivi) ja
luetaan tulostiedostoon.
Löydetty rivi voidaan myös korvata halutusta merkkinumerosta lähtien.
Tulostiedosto nimetään vaikka temp.txt ja lukutiedosto deletoidaan,
ja temp.txt -->rename lukutiedosto.

-Onko pakko olla *.txt file ???
Jos teet structin ja käytät binary-formaattia tiedostossa,kaikki
käy helpommin!!

Ehkä en osaa selittää????
Lisäselvityksiä löytyy varmasti muiltakin!!

Täytyy mennä ottamaan uutta vuotta vastaan vielä "enemmän"!!

Äänestä

ansi c ja FILE * tukee fseekkiä jolla voidaan liikkua tiedostossa, streamista löytyy samanlainen...

Äänestä

kiitos vastauksista, pitänee huomenna testailla ajankanssa.


-- -- -- --

Hyvää Uuttavuotta 2006 kaikille !!!

Äänestä
  • Tuon aiemman neuvoni mukaan menetellään jos pitää
    poistaa failista kokonainen tietue.Muutoin mennään vain
    ao. rivin/tietueen kohdalle ja tehdään muutos alkuperäiseen
    failiin.

    Kun menet tältä sivulta seuraavalle,niin sieltä
    löytyy OHJELMOINTITYÖ & C:llä 02.11.05.
    Se on "täydellinen" tietokantaohjelma,jossa tietueen deletointi,
    kirjoitus,tulostaminen ja muuttaminen ovat kukin
    omissa funktioissaan.Katso siitä viimeisestä kohdasta=
    "Lisätty tietueen muuttaminen".

    Äänestä

  • Builder kirjoitti:

    Tuon aiemman neuvoni mukaan menetellään jos pitää
    poistaa failista kokonainen tietue.Muutoin mennään vain
    ao. rivin/tietueen kohdalle ja tehdään muutos alkuperäiseen
    failiin.

    Kun menet tältä sivulta seuraavalle,niin sieltä
    löytyy OHJELMOINTITYÖ & C:llä 02.11.05.
    Se on "täydellinen" tietokantaohjelma,jossa tietueen deletointi,
    kirjoitus,tulostaminen ja muuttaminen ovat kukin
    omissa funktioissaan.Katso siitä viimeisestä kohdasta=
    "Lisätty tietueen muuttaminen".

    Siinä on muutosfunktion periaate /C
    *************************************
    Mennään suoraan muutettavan tietueen kohdalle ja tehdään
    muutos suoraan alkuperäiseen failiin.

    Allaoleva on mukaelma omasta puhelinmuistio-ohjelmastani.

    void muutatietue1(String tiedosto)
    {

    //Käyttäjä syöttää
    String sukunimi="Kekkonen";
    String etunimi="Urho Kaleva";

    fstream change;//Luodaan virta
    person muuta;//Otetaan olemassaoleva structi käyttöön

    //Avataan tietokanta muutettavaksi
    change.open(tiedosto.c_str(),ios_base::in|
    ios_base::out | ios_base::ate | ios_base::binary );

    //streampos on sama kuin tietuenumero
    streampos rec;
    //Käyttäjä antaa tietuenumeron=rec.
    rec=12;

    if(change.eof());
    change.clear();

    change.seekp((rec)*sizeof(muuta));

    strcpy(muuta.sukunimi1,sukunimi;

    strcpy(muuta.etunimet1,etunimi;

    change.write((char*) & muuta,sizeof(muuta));
    change.close();//Muutokset tehty

    Äänestä

Kommentoi aloitusta


Write kirjoitti:

tiedän että tiedostoon voidaan kirjoittaa näin;
...
   ofstream e("testi.txt", ios_base::app);
   cout s;
   e

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu