Hello
tässä harjoittelen C++ ja tehnyt tuollaisen lainanlyhennys jutun. Nyt tarkoitus olisi että tuo tulostus menisi taulukkoon.
Ongelmana on että ei hajuakaan noista taulukon luomisista tai siitä miten halutut tiedot niihin laitetaan.
Tuossa on osa koodista:
cout << " PAAOMA - KORKO-OSUUS - PAAOMA-LYHENNYS - YHT \n"; // lasketaan ja tulostetaan loppuajan lyhennys tiedot for (int kk = 2; kk <= la; kk = kk + 1) { korko_osuus = vk/12 *p* mv/100; korko_kum = korko_kum + korko_osuus; summa=plyh+korko_osuus; cout << " " << kk << " " << p << " " << plyh << " "<< korko_osuus << " " << summa <<"\n"; p = p - plyh; }
Tarkoitus olisi siis että nuo tulosteet tulostuisi hienosti taulukkoon. Jatkossa tarkoitus olisi että saisin litanian tulostettua vaikka txt-tiedostoon
Kiitti jo etukäteen avusta
Taulukko on kuin muuttuja, mutta yhteen taulukkoon mahtuu monta tietoa.
C-oppaassa on kerrottu taulukon käytössä, ja samat asiat pätevät C++:ssa:
https://www.ohjelmointiputka.net/oppaat/opas.
Tuossa koodissa voisit tehdä vaikka niin, että määritetään kolme taulukkoa, joihin silmukan joka kierroksella tallennetaan muuttujien p, korko_osuus ja summa arvot. Silmukkamuuttuja kk kelpaa taulukon indeksiksi, eli sen avulla kerrotaan, mihin taulukon kohtaan tieto tallennetaan.
Tämmöstä tulosteen muotoilua:
#include <iomanip> Tulostusasun muokkaus ostream << left Tulostus kentän vasempaan laitaan. ostream << right Tulostus kentän oikeaan laitaan. ostream << setw( int ) Tulostuskentän leveydeksi int. ostream << setfill( char ) Tulostuskentän mahdollinen ylimääräinen tila täytetään merkillä char. ostream << setprecision( int ) Reaalilukujen tulostustarkkuudeksi int. ostream << fixed setprecision( int ) -ohjeessa int tulkitaan desimaalien lukumääräksi.
Esim.
#include <iostream> #include <iomanip> using namespace std; int main() { cout << setw(8) << right << "hö\n" << left << "hä\n"; return 0; }
Ok, kiitti vinkeistä, ei auta kun alkaa pähkäilee ja jos vaikka avautuisi.
Toinen ongelma on se että piten saan pyöristettyä float/duble luvun siten että siinä vain kaksi desimaalia.
Nyt jos vastaus tulee olemaan 213,1223, niin miten saisin sen muotoon 213,12
Tuota en oikein ymmärtän, olisi se mahdollista jotenkin noilla:
ostream << setprecision( int ) Reaalilukujen tulostustarkkuudeksi int.
ostream << fixed setprecision( int ) -ohjeessa int tulkitaan
desimaalien lukumääräksi.
Kiitos jälleen
Joo
cout << fixed << setprecision(2) << 213.1223 << endl;
Aihe on jo aika vanha, joten et voi enää vastata siihen.