Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Yksinkertaisin tapa tallentaa tiedostoon

jokupoika [09.05.2009 17:39:46]

#

Jos mulla on funktio, joka lukee taulukosta tavaraa ja tulostaa ja muotoilee (setw, left, right jne...) cout:lla "monimutkaisten" silmukoiden ja kikkailujen päätteeksi hienon muotoillun tulosteen, niin onko mitään yksinkertaista tapaa tallentaa tämä tulostettu pläjäys tiedostoon sellaisenaan? Vai pitääkö jotenkin käydä läpi samat silmukat ja kikkailut tallentamisvaiheessakin?

C++

Metabolix [09.05.2009 17:44:15]

#

On, tiedostovirrat. Aloita lukeminen konstruktoreista. Kirjoitettaessa tiedostovirta toimii täsmälleen kuten cout.

jokupoika [09.05.2009 17:53:16]

#

Joo mut ei siis oo mitään helppoa tapaa, meinasin jotain tyyliin
virta << muotoilufunktion_tuloste;

Eli siis simppelisti sanoen pitää tehdä niin että kopioin saman funktion kun tossa muotoilu vaiheessa mutta korvaan cout:it tolla ostream virralla? Ja kaikki endl:ät ja setw:t toimii samalla tavalla? Vai oonko taas ihan pihalla?

os [09.05.2009 17:59:56]

#

Juurikin noin siis ehdottomasti kannattaa tehdä. Kyseinen ostream (tai viittaus siihen) kannattaa silloin antaa ko. funktiolle parametrinia

void tulosta(std::ostream &virta)
{
   // ...
   virta << "tekstiä" << std::endl;
   // ...
}

Tällöin voit tulostaa halutessasi sekä couttiin, että tiedostoon.

tulosta(std::cout);
tulosta(tiedostovirta);

jokupoika [09.05.2009 18:03:10]

#

joo tota tarkoitin, pistän kokeiluun.

edit: Toimii hienosti :) kiitos taas kerran

Päärynämies [09.05.2009 18:30:41]

#

Hieman ehkä aihetta sivuten, niin ohjelman tulostuksenhan voi ohjata tiedostoon näin komentoriviltä:

>ohjelma >> tiedosto.txt

Nyt ohjelma-ohjelman tulostukset menevät suoraan tiedosto.txt nimiseen tiedostoon. Kätevää joskus.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta