2016-09-19 12 views
-3

私はC++でコーディングして3週間目ですが、以下に示す練習問題を受け取りました。華氏と摂氏の変換テーブル

forループ内で華氏0〜212度の華氏と摂氏の温度の表を印刷するプログラムを作成します。 FahrenheitとCelsiusの列見出しを使用し、両方の列を右揃えにします(1列、10列などは並んでいますが、列ヘッダーの下に中心を置きます)。小数点以下3桁とプラス記号またはマイナス記号摂氏の場合は整数で、華氏の場合はプラス記号またはマイナス記号は使用せず、摂氏温度より前(華氏温度よりも前のスペースのみ)の間にドットリーダーを追加します。

これはこれまで私が行ってきたことです。

#include <iostream> 
#include <iomanip> 
using namespace std; 
void main() 
{ 
    int fah; 
    float cel; 
    cout << "Fahrenheit" << setw(17) << "Celsius" << endl; 
    cout.setf(ios::fixed); 
    for (fah = 0; fah <= 212; fah++) 

    { 
     cel = (fah - 32) * (5.0/9); 

     cout << right << setw(10) << noshowpos << fah 
      << setw(17) << setprecision(3) 
      << showpos << cel << setfill('.') << endl; 
    } 
} 

私がここにいる問題は、華氏と摂氏の後にドットリーダーが必要なことだけです。華氏の前ではありません。誰かが私にこのようにする方法を教えてもらえますか?

P.S.当面はボイド・メインを使用していますが、それは悪い習慣であることを認識しています。

+0

実際の出力は何ですか(フルテーブルは必要ありません)、期待される出力は何ですか? –

+0

ドットリーダーはどういう意味ですか?あなたが望むものの例が役に立つでしょう。 – NathanOliver

+2

_ "p.s。当面はボイドメインを使用しており、悪い習慣であることを認識しています。" _バッド練習ではありませんが、間違っています。 –

答えて

0

これを試してみてください:

#include <iostream> 
#include <iomanip> 
using namespace std; 
int main() { 
    int fah; 
    float cel; 
    cout << "Fahrenheit" << setw(17) << "Celsius" << endl; 
    cout.setf(ios::fixed); 
    for (fah = 0; fah <= 5; fah++) 

    { 
    cel = (fah - 32) * (5.0/9); 

    cout << right << setfill(' ') << setw(10) << noshowpos << fah 
     << setfill('.') << setw(17) << setprecision(3) 
     << showpos << cel << endl; 
    } 
} 

setfillマニピュレータがsetw前に来る必要があります。指定された幅を埋めるために、setfillの引数として与えられたものを使用します。

関連する問題