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++
On, tiedostovirrat. Aloita lukeminen konstruktoreista. Kirjoitettaessa tiedostovirta toimii täsmälleen kuten cout.
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?
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ä cout
tiin, että tiedostoon.
tulosta(std::cout); tulosta(tiedostovirta);
joo tota tarkoitin, pistän kokeiluun.
edit: Toimii hienosti :) kiitos taas kerran
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.
Aihe on jo aika vanha, joten et voi enää vastata siihen.