2014-10-17 72 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