2014-03-13 48 views
0

我已經花了一個多小時的時間,並且仍然無法按照需要的方式獲取數據。真的很沮喪,因爲這很容易。我的輸出現在是這樣的:在C++中進行對齊

0.00 miles: 3Wartburg_TN        
    37.64 miles: 2Knoxville_TN       37.64 
    671.37 miles: 5New_York_NY       633.72 
4547.77 miles: 27Frankfurt_DE      3876.40 
7597.51 miles: 23Lagos_NG       3049.74 

,我想輸出是這樣的:

0.00 miles : 3 Wartburg_TN 
    37.64 miles : 2 Knoxville_TN   37.64 miles 
    671.37 miles : 5 New_York_NY   633.73 miles 
4547.77 miles : 27 Frankfurt_DE   3876.40 miles 
7597.51 miles : 23 Lagos_NG    3049.74 miles 

我不能爲我的生活弄清楚如何得到正確的輸出。這是我迄今爲止的代碼。我沒有正確使用左右對齊嗎?

cout <<fixed <<setprecision(2) <<setw(8) << right << vdist[ij] << " miles: " 
     << ij << setw(25) << left << vec[ij].cityname 
    << setw(18) << right << vedge[ij]<<endl; 
+2

沒有顯示代碼,我們怎麼會知道? – crashmstr

+0

你忘記了密碼。但是你可能想要的是[std :: setw](http://en.cppreference.com/w/cpp/io/manip/setw)或者類似[bprint](https://github.com/dattanchu/ bprinter/wiki) –

+1

你輸出右對齊的'ij',然後立即'cityname'左對齊,它們之間沒有空格 – CoryKramer

回答

4
cout << fixed << setprecision(2) 
     << setw(8) << right << vdist[ij] 
     << " miles : " 
     << setw(3) << right << ij << " " 
     << setw(25) << left << vec[ij].cityname << " " 
     << setw(18) << right << vedge[ij] << " miles" <<endl; 
  • 沒有測試
+0

現貨!你是炸彈。 – Mdjon26

+0

接受答案,然後也許:) – Salgar