Code:
#include <iostream>
#include <iomanip>
#include <string>
#include <fstream>
#include <cstdlib>
using namespace std;
void ReadPlayerInfo(ifstream& myIn, string NameArray[], int idArray[], int& size);
void ReadProcessBatting (ifstream& myIn2, const int id [], float batAvg [], int walkArray[],int &size);
void ProcessRecord(string batRec, float& batAvgRunning, int& walk);
int SearchPosition(const int idArray[], int id, int size);
void PrintTable(string nameArray[],int idArray[],float averageArray[],int walkArray[],int size);
int FindHigh(float averageArray[], int size);
int FindLow(float averageArray[], int size);
int main()
{
//Declare Variables
string NameArray[20];
string batRec;
int idArray[20];
int size = 20;
int id[20];
int walkArray[20];
int walk = 0;
float batAvg[20];
float batAvgRunning = 0;
float averageArray[20];
int i;
//Begin opening files
string PlayerRecordsFile;
string PlayerBattingFile;
ifstream myIn;
ifstream myIn2;
cout << "Enter file name that contains player records: ";
cin >> PlayerRecordsFile;
myIn.open(PlayerRecordsFile.c_str());
while (!myIn)
{
cout << "Enter file name that contains player records: ";
cin >> PlayerRecordsFile;
myIn.open(PlayerRecordsFile.c_str());
}
ReadPlayerInfo(myIn, NameArray, idArray, size);
for (i=0;i<size;i++)
{
cout << NameArray[i] << ' ' << idArray[i] << endl;
}
cout << "Enter file name that contains batting data: ";
cin >> PlayerBattingFile;
myIn2.open(PlayerBattingFile.c_str());
while (!myIn2)
{
cout << "Enter file name that contains batting data: ";
cin >> PlayerBattingFile;
myIn2.open(PlayerBattingFile.c_str());
}
for (i=0;i<size;i++)
{
ReadProcessBatting(myIn2, id, batAvg, walkArray, size);
}
myIn.close();
myIn.clear();
myIn2.close();
myIn2.clear();
return 0;
}
void ReadPlayerInfo(ifstream& myIn, string NameArray[], int idArray[], int& size)
{
string playerName;
int playerNumber;
int i;
for (i=0;i<size;i++)
{
myIn >> playerName;
NameArray[i] = playerName;
myIn >> playerNumber;
idArray[i] = playerNumber;
}
}
void ProcessRecord(string batRec, float& batAvgRunning, int& walk)
{
int x = 0;
char choice;
float hit = 0;
float out = 0;
while (x < batRec.length())
{
choice = batRec[x];
x++;
switch(choice)
{
case 'O':
out++;
break;
case 'H':
hit++;
break;
case 'W':
walk++;
break;
default:
break;
}
}
cout << "Outs: " << out << endl;
cout << "Hits: " << hit << endl;
cout << "Walks: " << walk << endl;
batAvgRunning = (hit/(out+hit));
}
void ReadProcessBatting(ifstream& myIn2, const int id [], float batAvg [], int walkArray[],int &size)
{
int x;
for (x=0;x<size;x++)
{
myIn2 >> id[x];
}
}
I am getting an error on my second input file stream. Is there a way to use one file stream and open two files.
Code:
ola7.cc: In function 'void ReadProcessBatting(std::ifstream&, const int*, float*, int*, int&)':
ola7.cc:137: error: no match for 'operator>>' in 'myIn2 >> *(id + ((unsigned int)(((unsigned int)x) * 4u)))'
/usr/include/c++/4.3/istream:123: note: candidates are: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>& (*)(std::basic_istream<_CharT, _Traits>&)) [with _CharT = char, _Traits = std::char_traits<char>] <near match>
/usr/include/c++/4.3/istream:127: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_ios<_CharT, _Traits>& (*)(std::basic_ios<_CharT, _Traits>&)) [with _CharT = char, _Traits = std::char_traits<char>] <near match>
/usr/include/c++/4.3/istream:134: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(std::ios_base& (*)(std::ios_base&)) [with _CharT = char, _Traits = std::char_traits<char>] <near match>
/usr/include/c++/4.3/istream:170: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(bool&) [with _CharT = char, _Traits = std::char_traits<char>]
/usr/include/c++/4.3/istream:174: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(short int&) [with _CharT = char, _Traits = std::char_traits<char>]
/usr/include/c++/4.3/istream:177: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(short unsigned int&) [with _CharT = char, _Traits = std::char_traits<char>]
/usr/include/c++/4.3/istream:181: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(int&) [with _CharT = char, _Traits = std::char_traits<char>]
/usr/include/c++/4.3/istream:184: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(unsigned int&) [with _CharT = char, _Traits = std::char_traits<char>]
/usr/include/c++/4.3/istream:188: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(long int&) [with _CharT = char, _Traits = std::char_traits<char>]
/usr/include/c++/4.3/istream:192: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(long unsigned int&) [with _CharT = char, _Traits = std::char_traits<char>]
/usr/include/c++/4.3/istream:197: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(long long int&) [with _CharT = char, _Traits = std::char_traits<char>]
/usr/include/c++/4.3/istream:201: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(long long unsigned int&) [with _CharT = char, _Traits = std::char_traits<char>]
/usr/include/c++/4.3/istream:206: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(float&) [with _CharT = char, _Traits = std::char_traits<char>]
/usr/include/c++/4.3/istream:210: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(double&) [with _CharT = char, _Traits = std::char_traits<char>]
/usr/include/c++/4.3/istream:214: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(long double&) [with _CharT = char, _Traits = std::char_traits<char>]
/usr/include/c++/4.3/istream:218: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(void*&) [with _CharT = char, _Traits = std::char_traits<char>]
/usr/include/c++/4.3/istream:242: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_streambuf<_CharT, _Traits>*) [with _CharT = char, _Traits = std::char_traits<char>] <near match>
Long error code no idea what it means.