Неправильный ввод/считывание чисел
Добавлено: 20 июн 2014, 00:38
Доброго времени суток!
Написал программу, которая должна:
1. Считывать имя файла, определённое пользователем, производить запрос чисел от пользователя и запись чисел в этот файл.
2. Из файла производить считывание чисел, и затем, выводить на экран сумму чисел, кол-во членов и среднее значение.
Но! Программа считывает числа и записывает их "нереально большими". Может, проблема с несоответствием типов или особенностями ввода? Поясните пожалуйста, скриншот прилагаю =)

Написал программу, которая должна:
1. Считывать имя файла, определённое пользователем, производить запрос чисел от пользователя и запись чисел в этот файл.
2. Из файла производить считывание чисел, и затем, выводить на экран сумму чисел, кол-во членов и среднее значение.
Но! Программа считывает числа и записывает их "нереально большими". Может, проблема с несоответствием типов или особенностями ввода? Поясните пожалуйста, скриншот прилагаю =)
Код: Выделить всё
#include "stdafx.h"
#include <iostream>
#include <fstream>
using namespace std;
void main ()
{
//Инициализация переменных
int count = 0;
int sum = 0;
int value;
const int size = 15;
char filename [size];
int arr[size];
int i;
//Ввод имени файла
cout<<"Name of file: ?\b";
cin.getline (filename, size);
//Инициализация файла и ввод данных
ofstream InFile;
InFile.open (filename);
cout<<"Double or integer digits: "<<endl;
i = 0;
cout<<"#"<<i+1<<": ";
while (cin>>arr[i] && (i<size-1))
{
++i;
cout<<"#"<<i+1<<": ";
InFile<<int(arr[i]);
if (cin.fail ())
{
cout<<"Unknown error!"<<endl;
break;
}
}
InFile.close ();
//Открытие файла для чтения и вывод данных
ifstream OutFile;
OutFile.open (filename);
i = 1;
if (!OutFile.is_open ())
{
cout<<"Program terminated!\n";
exit (EXIT_FAILURE);
}
while (OutFile.good ())
{
OutFile>>value;
sum += value;
i++;
}
if (OutFile.eof ()) cout<<"End of file!\n";
else if (OutFile.fail ()) cout<<"Type mismatch!\n";
else cout<<"Unknown reason!\n";
//Вывод результатов обработки
if (i == 0) cout<<"No data!\n";
else cout<<"Sum: "<<sum<<"\nElements: "<<i<<"\nS/E: "<<double(sum/i)<<endl;
system ("pause");
}
