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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.12.2010, 21:50   #1
Razza
 
Регистрация: 12.11.2010
Сообщений: 9
По умолчанию считать массив чисел из файла

Добрый вечер, есть файл, в нём 4096 чисел, каждое на новой строке, необходимо поместить числа в одномерный массив, желательно через ifstream.

Вот код из учебника для считывания чисел из файла, файл выглядит так:
1
2
3
4
Код:
#include "stdafx.h"
#include <iostream>
#include <fstream>
int main()
{
	using namespace std;
	ifstream in_stream;
	ofstream out_stream;
	
	in_stream.open("RND1.dat");
	out_stream.open("RND2.dat");

	int first, second, third;

	in_stream >> first >> second >> third;
	out_stream <<"SyMMa pervih 3\n"
			<<"4isel v faile RND1.dat\n"
			<<"ravna " << (first+second+third)
			<< endl;

	in_stream.close();
	out_stream.close();

	//system("PAUSE");
	return 0;
в ходе экспериментов, выяснил что:

in_stream >> first >> second >> third;

не присваивает переменным никаких значений (если инициализировать их при объявлении, в RND2.dat просто записывается их сумма)

Объясните пожалуйста, почему им не присваиваются значения?
Помогите забить числа в массив.
Razza вне форума Ответить с цитированием
Старый 13.12.2010, 21:59   #2
Razza
 
Регистрация: 12.11.2010
Сообщений: 9
По умолчанию

эти числа составляют псевдослучайную последовательность, её необходимо проанализировать критерием интервалов, но это я уже сам, вроде ничего сложного, а вот считать грамотно не получается
Razza вне форума Ответить с цитированием
Старый 13.12.2010, 22:02   #3
kaljan775
:D
Форумчанин
 
Аватар для kaljan775
 
Регистрация: 26.09.2010
Сообщений: 570
По умолчанию

попробуйте еще раз
Код:
int a[3];
for (int i=0;i<3;i++)
 in_stream>>a[i];
Пишу ПО, создаю сайты, делаю курсовые работы, за деньги
C#, .NET, MS SQL, AngularJS, HTML, jQuery
kaljan775 вне форума Ответить с цитированием
Старый 13.12.2010, 22:02   #4
Syuf
Форумчанин
 
Аватар для Syuf
 
Регистрация: 02.02.2010
Сообщений: 599
По умолчанию

А вы вставьте такой код после открытия файлов:
Код:
if(!in_stream || !out_stream)
{
      cout << "Can't open files" << endl;
      system("pause");
      return 1;
}
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."
Syuf вне форума Ответить с цитированием
Старый 13.12.2010, 22:07   #5
Razza
 
Регистрация: 12.11.2010
Сообщений: 9
По умолчанию

Вот результат:
Цитата:
#include "stdafx.h"
#include <iostream>
#include <fstream>

int main()
{
using namespace std;
ifstream in_stream;
ofstream out_stream;

in_stream.open("RND1.dat");
out_stream.open("RND2.dat");

int first, second, third;

int a[3];
for (int i=0;i<3;i++)
in_stream>>a[i];

for (int i=0;i<3;i++)
out_stream << a[i] << "\t";


in_stream.close();
out_stream.close();

//system("PAUSE");
return 0;
}
в RND2.dat после выполнения программы находится следующее:
-858993460 -858993460 -858993460
Razza вне форума Ответить с цитированием
Старый 13.12.2010, 22:10   #6
Razza
 
Регистрация: 12.11.2010
Сообщений: 9
По умолчанию

Syuf спасибо большое, сразу нашел ошибку
глупая ошибка... немного не в том каталоге был RND1.dat
прошу прощения за беспокойство по пустякам )
Razza вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не могу считать двумерный массив=((( pinch000 Общие вопросы C/C++ 15 02.01.2012 14:35
считать строку из файла Farrel Общие вопросы C/C++ 1 09.12.2010 01:47
Считывание чисел из файла в массив rubakKa Общие вопросы C/C++ 11 02.12.2010 21:55
Как считать массив из файла? Ronin021992 Общие вопросы C/C++ 4 16.12.2009 20:44
считать елементы файла в массив XfighT Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 14.01.2008 16:35