При чтении из файла .data моя программа будет читать только 6 из 15 чисел, но когда она читает из файла .txt, она будет читать все числа. Мне нужно, чтобы прочитать все 15 чисел из файла .data.
Вот код:
string PromptUser(void)
{
ifstream infile;
string filename;
cout << "Please enter a file name:" << endl;
getline(cin, filename);
while (!infile)
{
cout << "Please enter a file name:" << endl;
getline(cin, filename);
}
return filename;
}
int ReadData(vector<int>& theData, ifstream& in)
{
int value;
if (in.is_open())
{
while (in >> value)
{
theData.push_back(value);
}
return 0;
}
else
{
return 1;
}
}
void ComputeStats(vector<int>& theData, double& mean, double& median)
{
double num = 0;
for (int val : theData)
{
num = num + val;
}
if (theData.size() != 0)
{
mean = num / theData.size();
}
else
{
cout << "yeee" << " " << theData.size();
exit(0);
}
int num2 = 0;
sort(theData.begin(), theData.end());
if (theData.size() % 2)
{
median = theData[(theData.size() / 2) + 1];
}
else
{
median = (theData[theData.size() / 2] + theData[theData.size()
/2])/2:
}
}
void DisplayStats(int num, double mean, double median)
{
cout << "********** Data Summary **********" << endl;
cout << "Number of Values: " << num << endl;
cout << "Mean Value: " << mean << endl;
cout << "Median Value: " << median << endl;
cout << "**********************************" << endl;
}
int main()
{
vector<int> theData;
string filename;
ifstream infile;
filename = PromptUser();
infile.open(filename);
int rtn = ReadData(theData, infile);
if (ReadData(theData, infile) == 1)
{
cerr << "The file could not be open " << endl;
return 0;
}
infile.close();
int numValues = theData.size();
double meanValue, medianValue;
ComputeStats(theData, meanValue, medianValue);
DisplayStats(numValues, meanValue, medianValue);
return 0;
}
файл .data содержит числа 23, 45, 9, 1, 09, 24, 23, 45, 81, 24, 9, 13, 9, 86 и 12. И файл .txt содержит те же номера , Но программа сообщает, что размер файла .data составляет всего 6, в то время как говорит, что файл .txt равен 15. Мне нужно, чтобы он прочитал файл .data прямо для класса, в котором я учусь.