2011-03-16 1 views
0

Voici mon code:Statment simple C++ cout, une ligne avec un problème de formatage, ce que c'est?

#include <iomanip> 
#include <fstream> 
#include <iostream> 
using namespace std; 

int main() 
{ 
    ifstream fin; 

    fin.open("Celsius.txt"); 

    if (!fin.good()) throw "I/O error"; 

    double myC; 
    fin >> myC; 

    fin.close(); 

    ofstream fout; 
    fout.open("Fahrenheit.txt"); 
    if (!fout.good()) throw "I/O error"; 

    double myAnswer = (myC * 1.80) + 32; 
    fixed; 
    cout << myC << " Celsius equals " << setprecision(3) << myAnswer << " Fahrenheit" << endl; 
    fout << myC << " Celsius equals " << setprecision(3) << myAnswer << " Fahrenheit" << endl; 

    fout.close(); 
} 

Ok, suis-je manque juste un certain neurone complet fondamental, il me semble avoir une certaine compréhension de ce barrage routier.

  • Il est -2 pour écho d'entrée formaté et
  • Il est -2 pour le formatage non sortie avec un chiffre décimal.
  • Ne pas formater les valeurs d'entrée uniquement la sortie.

    fixed; 
    cout << myInput << " should not be formatted, but " << setprecision(3) << myOutput << " should be" << endl; 
    

ne pas que séjour:

myInput est l'entrée et sans mise en forme d'écho myOutput est formaté à un chiffre décimal?

+2

Ceci est presque incompréhensible. Est-ce que le code fait ce que vous attendez? Quel est le problème? Quelle est la question? – Beta

+0

Désolé, c'est une exigence de ce programme que je dois écrire, j'essaie juste de comprendre les spécifications. – CodingIsAwesome

+0

essayé de nettoyer votre mise en forme .... pas encore entièrement résolu. – abelenky

Répondre

1

Vous devez inclure fixé dans le flux de sortie, comme ceci:

cout << myC << " Celsius equals " << fixed << setprecision(3) << myAnswer << " Fahrenheit" << endl; 

SetPrecision précisera le nombre de décimales après la virgule. Donc, 3 vous donnera un nombre de 72.000, ou 1 dans votre cas, le fixera à 72.0

+0

Désolé, ma sortie doit également être formatée à 1 chiffre, peut-être que je ne comprends pas ce que setprecision() fait exactement? Je pensais qu'il formatait mon numéro. – CodingIsAwesome

+0

Modifié pour inclure plus d'informations. – Cody

+0

@CodingIsAwesome: essayez 'setprecision (1)' –