Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.06.2014, 00:33   #1
Negent
Студент
Пользователь
 
Аватар для Negent
 
Регистрация: 11.06.2010
Сообщений: 39
Радость Неверное ввод/считывание чисел из файла

Доброго времени суток!
Написал программу, которая должна:
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");
}
"...Попытайся ухватить звёзды с небес, чем переживай, что до них не дотянуться..."

Последний раз редактировалось Stilet; 20.06.2014 в 08:17.
Negent вне форума Ответить с цитированием
Старый 20.06.2014, 08:19   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А в файле какие числа?
Он текстовый получается же - открой посмотри что там.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.06.2014, 10:51   #3
Negent
Студент
Пользователь
 
Аватар для Negent
 
Регистрация: 11.06.2010
Сообщений: 39
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А в файле какие числа?
Он текстовый получается же - открой посмотри что там.
В файле вот что находится:
Цитата:
-858993460-858993460-858993460-858993460-858993460-858993460-858993460-858993460-858993460-858993460-858993460-858993460-858993460-858993460
Всё, теперь вижу. Надо вести запись в файл из инициализированного элемента массива: увеличивать ''i'', после записи из массива в файл:

Цитата:
while (cin>>arr[i] && (i<size-1))
{
++i; \\Поменять местами
...
InFile<<int(arr[i])<<" ";; \\Поменять местами
Вот так:
Цитата:
while (cin>>arr[i] && (i<size-1))
{
InFile<<int(arr[i])<<" "; \\Вот так вот
...
++i; \\Вот так вот
И разумеется, разделить числа пробелами, чтобы вести считывание =)
"...Попытайся ухватить звёзды с небес, чем переживай, что до них не дотянуться..."

Последний раз редактировалось Negent; 20.06.2014 в 11:03.
Negent вне форума Ответить с цитированием
Старый 20.06.2014, 12:49   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну бывает ))
Обычно в таких случаях отладка все и показывает.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Неверное считывание записи из типизированного файла Boris777 Общие вопросы Delphi 3 20.12.2011 02:51
Считывание чисел из файла в массив rubakKa Общие вопросы C/C++ 11 02.12.2010 21:55
Считывание с файла отрицательных чисел trinki Общие вопросы C/C++ 2 01.10.2010 01:39
Неверное считывание из файла [BlockRead] Alex Cones Общие вопросы Delphi 2 16.05.2010 23:46
Файлы: ввод - вывод, считывание файла chagin_yav Помощь студентам 1 25.05.2008 15:34