C++ — cout.setf(ios_base::showpoint); [LÖST]
Postat: 20 feb 2008, 23:36
Eller bara showpoint; om man så vill.
Detta dök upp i ett övningsexempel i en bok jag köpte nyligen utan att de kommenterades över huvud taget. Lite jagande på nätet gav följande information och lite till: "print trailing zeros".
Jag provade att ändra i övningsexemplet till noshowpoint;, vilket tydligen ska vara motsatsen, men när jag körde programmet kunde jag inte se någon skillnad. Kan någon ge mig ett kort programexempel på när denna lilla sats, så att säga, har någon praktisk betydelse?
Så här ser övningsexemplet ut:
Som sagt, jag körde programmet några gånger och matade in lite olika, mer eller mindre sannolika värden, men kunde inte märka någon skillnad på hur saker skrevs ut om jag hade med raden cout.setf(ios_base::showpoint); eller inte. Provade även att ersätta den med cout << showpoint; respektive cout << noshowpoint;, men inget av det gav heller någon skillnad. Fick mina två decimaler och de siffror jag matat in i övrigt hur jag än gjorde. Kompilatorn svalde allt och tyckte säkert att jag skrivit ett kanonbra program… 
J.R.
P.S. Någon som fattade vad jag egentligen undrade? Inte? Okej, jag ville bara ha ett kort exempel på när cout << showpoint; och cout << noshowpoint; ger olika resultat. D.S.
Detta dök upp i ett övningsexempel i en bok jag köpte nyligen utan att de kommenterades över huvud taget. Lite jagande på nätet gav följande information och lite till: "print trailing zeros".
Jag provade att ändra i övningsexemplet till noshowpoint;, vilket tydligen ska vara motsatsen, men när jag körde programmet kunde jag inte se någon skillnad. Kan någon ge mig ett kort programexempel på när denna lilla sats, så att säga, har någon praktisk betydelse?
Så här ser övningsexemplet ut:
Kod: Markera allt
// outfile.c++ — skriva till en fil
#include <iostream>
#include <fstream>
int main()
{
using namespace std;
char automobile[50];
int year;
double a_price, d_price;
ofstream outFile; // Skapa objekt för utmatning
outFile.open("bilinfo.txt"); // Associera med en fil
cout << "Skriv in märke och modell: ";
cin.getline(automobile,50);
cout << "Skriv in årsmodell: ";
cin >> year;
cout << "Skriv in ursprungligt begärt pris: ";
cin >> a_price;
d_price=0.913*a_price;
// Visa information på skärmen med cout
cout << fixed;
cout.precision(2);
cout.setf(ios_base::showpoint);
cout << "Märke och modell: " << automobile << endl;
cout << "År: " << year << endl;
cout << "Begärt pris: " << a_price << " kr\n";
cout << "Pris nu: " << d_price << " kr\n";
// Gör nu samma sak med outFile istället för cout
outFile << fixed;
outFile.precision(2);
outFile.setf(ios_base::showpoint);
outFile << "Märke och modell: " << automobile << endl;
outFile << "År: " << year << endl;
outFile << "Begärt pris: " << a_price << " kr\n";
outFile << "Pris nu: " << d_price << " kr\n";
outFile.close(); // Klar med filen
return 0;
}

J.R.
P.S. Någon som fattade vad jag egentligen undrade? Inte? Okej, jag ville bara ha ett kort exempel på när cout << showpoint; och cout << noshowpoint; ger olika resultat. D.S.