Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
АлексИванов
0 / 0 / 1
Регистрация: 08.11.2012
Сообщений: 72
#1

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

22.11.2012, 17:27. Просмотров 494. Ответов 10
Метки нет (Все метки)

Всем привет!!!
задача следующая, есть текстовый файл в котором записаны числа в виде матрицы 10 000 000 на 10 000 000 через пробел. Необходимо провести считывание из этого файла только не по строкам а по столбцам.
То есть в 1 массив сначала записать 10 000 000 чисел с 1 го столбца во второй массив со 2го столбца и так далее.
Суть не куда записать в массив или ещё куда нибудь, а как организовать само считывание столбцов. Может быть организовать как переписать этот файл в другой с переворотом(чтобы столбцы 1го стали строками другого файла)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.11.2012, 17:27
Ответы с готовыми решениями:

Работа с файлами. Напечатать индексы всех чисел, совпадающих с некоторым заданным числом
В файле последовательно записаны целые числа(n<=40). Напечатать индексы всех...

Работа с файлами: считывание и запись
Здравствуйте. Задача состоит в том, что дан диалог в блокноте (-Сколько будет...

Работа с файлами C++. Считывание и выписывание в отдельный файл
Вычисления и вывод в файл с именем results.txt количества вхождений и координат...

Работа с файлами. Считывание информации из файла в массив
#include<conio.h> #include<stdio.h> struct add { char...

Работа с файлами, деление чисел
Напишите, пожалуйста, программу. Есть два файла input.txt, output.txt, в input...

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

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

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

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

Добавлено через 2 минуты
Цитата Сообщение от Vourhey Посмотреть сообщение
Блин, в стандартную библиотеку-то тебе никак не заглянуть? Для кого документацию-то пишут? seekg
Я поэтому и пишу в тему для начинающих, потому что ещё не со всеми инструментами знаком, и вам бы следовало относиться к таким пользователям как я более снисходительно...
И если не трудно приведите пример как использовать команду seekg
0
Vourhey
Почетный модератор
6492 / 2266 / 185
Регистрация: 29.07.2006
Сообщений: 12,534
22.11.2012, 18:07 #10
Здесь есть поиск по форуму. Там вводишь слово seekg и видишь кучу тем с примерами его использования. А еще ж документация в интернете по istream, документация...
1
alsav22
5441 / 4836 / 831
Регистрация: 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;
}
0
Миниатюры
Работа с файлами. Считывание чисел заданным образом.  
22.11.2012, 19:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2012, 19:06

Работа с файлами (поиск и вывод чисел в файле)
Как на с++ сделать программу, которая в текстовому файле найдет и выведет на...

Работа с файлами (Дан файл, содержащий n вещественных чисел. .)
Добрый вечер, помогите кто сможет с задачей) Дан файл, содержащий n...

Работа с файлами. Записать в файл удвоенные значения целых чисел.
Помогите пожалуйста, только начал изучать С++. 1. В файле записана...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru