填充和打印结构阵列

时间:2014-10-17 08:19:01

标签: c++ arrays for-loop struct

我的程序应该填充一组结构并最终对它们进行排序。我遇到的问题是当我填写它并尝试打印它时,它会打印出没有输入的内容。

#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

其中只有第一行是正确的。

1 个答案:

答案 0 :(得分:0)

将数据成员money定义为类型double

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

否则,当您尝试输入整数并且流的输入缓冲区包含点时,会发生错误。它不是整数表示的有效符号。