Форум программистов, компьютерный форум CyberForum.ru

Работа с файлами. Считывание чисел заданным образом. - C++

Восстановить пароль Регистрация
 
АлексИванов
0 / 0 / 1
Регистрация: 08.11.2012
Сообщений: 72
22.11.2012, 17:27     Работа с файлами. Считывание чисел заданным образом. #1
Всем привет!!!
задача следующая, есть текстовый файл в котором записаны числа в виде матрицы 10 000 000 на 10 000 000 через пробел. Необходимо провести считывание из этого файла только не по строкам а по столбцам.
То есть в 1 массив сначала записать 10 000 000 чисел с 1 го столбца во второй массив со 2го столбца и так далее.
Суть не куда записать в массив или ещё куда нибудь, а как организовать само считывание столбцов. Может быть организовать как переписать этот файл в другой с переворотом(чтобы столбцы 1го стали строками другого файла)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vourhey
Почетный модератор
6468 / 2243 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
22.11.2012, 17:38     Работа с файлами. Считывание чисел заданным образом. #2
Хех. Главное понять. что "столбцы" и "строки" - это одно и то же. И отличается лишь тем, как ты идешь по двумерному массиву.
А в общем, читаешь первую строку числе, распихиваешь каждое число в нулевой столбец. Читаешь вторую строку, запихиваешь каждый элемент по 1-му индексу. В общем получится, что 0-вой элемент первой строки идет в [0][0], 0-вой элемент второй строки идет в [0][1] и так далее. Получится матрица "наоборот".
АлексИванов
0 / 0 / 1
Регистрация: 08.11.2012
Сообщений: 72
22.11.2012, 17:44  [ТС]     Работа с файлами. Считывание чисел заданным образом. #3
С помощью двумерного массива что ли?! я что то не очень понял что вы мне написали?!

Добавлено через 1 минуту
Кстати говоря я понял что вы предлагаете использовать двухмерный массив, но уже сталкивался с тем что такое огромное количество элементов не помещается в двумерный массив, из за ограниченности памяти.

Добавлено через 43 секунды
Так как же всё таки организовать считывание по столбцам?!
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
22.11.2012, 17:51     Работа с файлами. Считывание чисел заданным образом. #4
Цитата Сообщение от АлексИванов Посмотреть сообщение
Так как же всё таки организовать считывание по столбцам?!
Тупо перемещая курсор в нужное место.
Vourhey
Почетный модератор
6468 / 2243 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
22.11.2012, 17:56     Работа с файлами. Считывание чисел заданным образом. #5
Цитата Сообщение от АлексИванов Посмотреть сообщение
Кстати говоря я понял что вы предлагаете использовать двухмерный массив
Если тебе не это было нужно в задании, то я не понял, что.
Цитата Сообщение от АлексИванов Посмотреть сообщение
То есть в 1 массив
В один массив? В первый массив? Что тут имеется ввиду, не понятно. Пиши задание понятней.
АлексИванов
0 / 0 / 1
Регистрация: 08.11.2012
Сообщений: 72
22.11.2012, 17:56  [ТС]     Работа с файлами. Считывание чисел заданным образом. #6
Цитата Сообщение от alsav22 Посмотреть сообщение
Тупо перемещая курсор в нужное место.
Ну а как это сделать по средствам языка C++, приведите пример?!с помощью каких команд я буду перемещать этот самый курсор?!
Vourhey
Почетный модератор
6468 / 2243 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
22.11.2012, 17:57     Работа с файлами. Считывание чисел заданным образом. #7
Цитата Сообщение от АлексИванов Посмотреть сообщение
Ну а как это сделать по средствам языка C++, приведите пример?!с помощью каких команд я буду перемещать этот самый курсор?!
Блин, в стандартную библиотеку-то тебе никак не заглянуть? Для кого документацию-то пишут? seekg
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
22.11.2012, 18:00     Работа с файлами. Считывание чисел заданным образом. #8
Цитата Сообщение от АлексИванов Посмотреть сообщение
Ну а как это сделать по средствам языка C++, приведите пример?!с помощью каких команд я буду перемещать этот самый курсор?!
Для чтения: seekg(). Так как матрица в файле фиксированного размера, то это не сложно организовать.
АлексИванов
0 / 0 / 1
Регистрация: 08.11.2012
Сообщений: 72
22.11.2012, 18:03  [ТС]     Работа с файлами. Считывание чисел заданным образом. #9
Цитата Сообщение от Vourhey Посмотреть сообщение
Если тебе не это было нужно в задании, то я не понял, что.

В один массив? В первый массив? Что тут имеется ввиду, не понятно. Пиши задание понятней.
Имеется ввиду, в моем задании, как, с помощью каких команд, организовать считывание столбцов из текстового файла в: массив или в 1 переменную или переписать в другой текстовый файл; не важно куда будет происходить считывание, а важно каким образом организовать считывание, и вариант с двумерным массивом отпадает.

Добавлено через 2 минуты
Цитата Сообщение от Vourhey Посмотреть сообщение
Блин, в стандартную библиотеку-то тебе никак не заглянуть? Для кого документацию-то пишут? seekg
Я поэтому и пишу в тему для начинающих, потому что ещё не со всеми инструментами знаком, и вам бы следовало относиться к таким пользователям как я более снисходительно...
И если не трудно приведите пример как использовать команду seekg
Vourhey
Почетный модератор
6468 / 2243 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
22.11.2012, 18:07     Работа с файлами. Считывание чисел заданным образом. #10
Здесь есть поиск по форуму. Там вводишь слово seekg и видишь кучу тем с примерами его использования. А еще ж документация в интернете по istream, документация...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2012, 19:06     Работа с файлами. Считывание чисел заданным образом.
Еще ссылки по теме:

Работа с файлами (Дан файл, содержащий n вещественных чисел. .) C++
Работа с файлами. Напечатать индексы всех чисел, совпадающих с некоторым заданным числом C++
Вывод букв строки заданным образом C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
22.11.2012, 19:06     Работа с файлами. Считывание чисел заданным образом. #11
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
// В файле:
/*
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9 
*/
 
#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
 
int main()
{
 ifstream f("1.dat" , ios::binary);
    
 int arr[10]; // массив для считанного столбца
 const int N = 10; // размер матрицы
    
 for (int j = 0; j < (N * 2); j += 2)
 {
    f.seekg(j, ios::beg);
        
    for (int i = 0; i < N; i++) 
    {
        f >> arr[i];
        cout << arr[i] << ' ';
        f.seekg(N * 2, ios::cur);
    }
    cout << endl;
 }
 f.close();
    
 system("pause");
 return 0;
}
Миниатюры
Работа с файлами. Считывание чисел заданным образом.  
Yandex
Объявления
22.11.2012, 19:06     Работа с файлами. Считывание чисел заданным образом.
Ответ Создать тему
Опции темы

Текущее время: 05:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru