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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.07.2014, 21:32   #1
Negent
Студент
Пользователь
 
Аватар для Negent
 
Регистрация: 11.06.2010
Сообщений: 39
Радость Нарушение прав доступа

Доброго времени суток, уважаемые программисты!
Вкратце: шефом была поставлена задача выяснить остатки витой пары на складе... Однако простое суммирование - это не наш метод, поэтому я написал программу, которая считывает длины из файла и потом суммирует эти длины, далее, сортирует в порядке возрастания и в будущем (надо написать часть) записывает массив в файл.
Однако я получил сумму и сбой "Необработанное исключение. Нарушение прав доступа".
Прошу помочь, подсказать, где ошибка в цикле, использующем "while". Компилятор (MS Visual C++ 2010) спотыкается именно там.
Код:
#include "stdafx.h"
#include <fstream>
#include <iostream>


using namespace std;

void main ()
{

	ifstream FromFile;
	FromFile.open ("spisok.txt");
	if (!FromFile.is_open())
	{
		cout<<"File not found!";
		exit(EXIT_FAILURE);
	}
	//Инициализация массива и счётчика
		int const size = 100;
		double arr[size];
		int i = 0;
		double sum = 0;
		double TempValue = 0;
	//Считывание элементов массива 
	while (FromFile.good ()) 
	{
		FromFile>>TempValue;
		arr[i] = TempValue;
		cout<<TempValue<<" ";
		sum +=TempValue;
		cout<<"Sum: "<<sum<<endl;
		i++;
	}
		if (FromFile.eof()) cout<<"End of file!"<<endl;
		else if (FromFile.fail ()) cout<<"Type mismatch!"<<endl;
		else if (sum == 0) cout<<"No data!"<<endl;
		else cout<<"Unknown error!"<<endl;
	//Сортировка элементов массива
	for (i=0; i<size-1; i++)
	{
		if (arr[i]>arr[i+1])
		{
			TempValue = arr[i+1];
			arr[i+1] = arr[i];
			arr[i] = TempValue;
		}
	}
	i=0;
	while (i<size-1)
	{
		cout<<"arr["<<i+1<<"] = "<<arr[i]<<"  ";
		i++;
	}
	system ("pause");
}
Файл, простой текстовый со следующими данными:
Цитата:
140 108 50 21 20 15 11 32 14 14 9 7 10 4.5 8 6 4 16 6 3 7 5.2 5 4 5 8 6 9.5 7 4.2 4.5 8 5 5 5 7 13 13 7 4 9 5 7 8 4 13 13 6 8 5 5 5 18 9 10 6 8 10 19 13 9 10 13 23 13 14 14 10 27 12 21 9 22 31 10 10 89 7 4 4 4 5 3.9 35 5 8 6 4.2 4 15 5 5 7.5 9 11 4 4 3 14 11 2 11 2.5 13 10 5 5 13 0
"...Попытайся ухватить звёзды с небес, чем переживай, что до них не дотянуться..."

Последний раз редактировалось Stilet; 18.07.2014 в 22:22.
Negent вне форума Ответить с цитированием
Старый 19.07.2014, 01:44   #2
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Код:
//Инициализация массива и счётчика
		int const size = 100; //<--- вы допускаете, что количество элементов может быть отрицательным?
		double arr[size];
		int i = 0;
		double sum = 0;
		double TempValue = 0;
	//Считывание элементов массива 
	while (FromFile.good ()) 
	{
		FromFile>>TempValue;
		arr[i] = TempValue;
		cout<<TempValue<<" ";
		sum +=TempValue;
		cout<<"Sum: "<<sum<<endl;
		i++;

                if(i==size)
                    cout<<"Ошибка: переполнение буфера arr. Необходимо увеличить размер массива\n";
	}
_Bers вне форума Ответить с цитированием
Старый 19.07.2014, 01:44   #3
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Код:
//Инициализация массива и счётчика
		int const size = 100; //<--- вы допускаете, что количество элементов может быть отрицательным?
		double arr[size];
		int i = 0;
		double sum = 0;
		double TempValue = 0;
	//Считывание элементов массива 
	while (FromFile.good ()) 
	{
		FromFile>>TempValue;
		arr[i] = TempValue;
		cout<<TempValue<<" ";
		sum +=TempValue;
		cout<<"Sum: "<<sum<<endl;
		i++;

                if(i==size)
                    cout<<"Ошибка: переполнение буфера arr. Необходимо увеличить размер массива\n";
	}
_Bers вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нарушение прав доступа при чтении Павел Гайдаржи Помощь студентам 0 11.11.2012 19:45
C++ Error Необработанное исключение...нарушение прав доступа Alt_Shift Помощь студентам 1 24.05.2012 12:55
Нарушение прав доступа Simito Общие вопросы C/C++ 1 03.06.2011 12:06
Нарушение прав доступа Hemul Qt и кроссплатформенное программирование С/С++ 1 08.04.2011 20:02
нарушение прав доступа при чтении Farrel Общие вопросы C/C++ 1 22.02.2011 00:32