我一直试图让这种代码几乎整晚都在工作,无论如何我在这行代码上遇到了最后一个错误:
if(A[c]>A[c+1]) swap(A,c,c+1);
>
关于没有运算符与这些操作数匹配的说法,这给了我一个错误。>>
如果我在输入或输出时搞砸了,我之前已经看到过这个错误<<
,但这是一个完全不同的问题。
完整代码:
#include <iostream>
#include <string>
#include <fstream>
#include <algorithm>
using namespace std;
struct salesTran {
string name;
double quantity,price;
};
bool compareByPrice(salesTran const &a, salesTran const &b)
{
return a.price < b.price;
}
void swap(salesTran A[], int i, int j);
void sort(salesTran A[], int size);
ostream& operator << (ostream& os, salesTran A)
{os << A.name << "\t" << A.quantity << "\t" << A.price;
return os;}
istream& operator >> (istream& is, salesTran& A)
{is >> A.name >> A.quantity >> A.price;
return is;}
int main()
{
salesTran data[250];
ifstream fin;
fin.open("sales.txt");
ofstream fout;
fout.open("results.txt");
int index = 0;
fin >> data[index];
while(!fin.eof())
{
index++;
fin >> data[index];
}
sort(data, index);
for(int j=0; j < index; j++)
{
cout << data[j] << endl;
}
return 0;
}
void swap(salesTran A[], int i, int j)
{
salesTran temp;
temp =A[i];
A[j] = A[j];
A[j] = temp;
return;
}
bool compareByPrice(salesTran const &a, salesTran const &b)
{
return a.price < b.price;
std::sort(data, data + index, compareByPrice);
return;
}