2014-10-17 121 views
0

我的程序應該填充一個結構數組並最終對它們進行排序。我遇到的問題是當我填充它並嘗試打印它時,它會打印出未輸入的內容。填充和打印結構陣列

#include <iostream> 
#include <string> 

using namespace std; 

struct bankaccount 
{ 
     int number; 
     //string name; 
     int money; 
}; 

int main() 
{ 
     int i; 
     bankaccount bank[10]; 
     for (i = 0; i < 10; i++) 
     { 
      cin >> bank[i].number >> bank[i].money; 
     // getline(cin, bank[i].name); 
     } 
     for (i = 0; i < 10; i++) 
     { 
      cout << bank[i].number << " " << bank[i].money << endl; 
     } 
} 

然後我輸入數據文件。

4 5024.24 
3 2234.23 
2 4332.21 
1 4567.32 
8 2345.32 
5 2233.56 
9 9008.98 
10 9430.23 
6 4560.29 
7 8384.08 

而當我通過輸入cat data | sortingarray.cpp,它給了我怪異的輸出:

4 5024 
0 1 
-1469612912 32767 
4197157 0 
2 0 
4197261 0 
952461936 32593 
4197168 0 
0 0 
4196608 0 

,其中只有第一行是正確的。

回答

0

定義數據成員money爲具有類型double

struct bankaccount 
{ 
     int number; 
     //string name; 
     double money; 
}; 

當你正在試圖進入的整數,並且該流的輸入緩衝器包含一個圓點否則會發生錯誤。它不是整數表示的有效符號。

+0

那真是令人尷尬,我沒有注意到我宣佈錢是一個整數!它現在可以工作,但是我試圖給結構添加名稱,當我使用這些名稱時,它只會正確地打印第一行。你認爲你可以幫助我嗎? – Lightningzr 2014-10-17 08:36:52