我的程序应该填充一组结构并最终对它们进行排序。我遇到的问题是当我填写它并尝试打印它时,它会打印出没有输入的内容。
#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 :(得分:0)
将数据成员money
定义为类型double
struct bankaccount
{
int number;
//string name;
double money;
};
否则,当您尝试输入整数并且流的输入缓冲区包含点时,会发生错误。它不是整数表示的有效符号。