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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.09.2011, 11:45   #1
KorPaEv
Пользователь
 
Аватар для KorPaEv
 
Регистрация: 08.07.2011
Сообщений: 42
По умолчанию Заполнение двумерного массива из файла.

Всем привет!
Застопорился на следующем.
Есть некий файл следующего содержания
аа
аb
fg
df
df
rt
ty
gh
yu
yu
Хочу его открыть и записать в двумерный массив следующим образом - первая строка - а а f d d r ...
а вторая строка как вы догодались наверняка - a b g f f t ...

Файл открываю но не могу понять как заполнить двумерный массив именно так.

Код:
...
int len_file;
ifstream f_op;
f_op.open("test", ios::binary);

if (!f_op)
            cerr<<"Error file open";
        else
            cout<<"Your file is open.\n";

f_op.seekg(0, ios::end);
len_file = f_op.tellg();
f_op.seekg(0, ios::beg);

unsigned char buf_f[len_file][2];

f_op.read(???); вот тут и остановился - делаем цикл? тогда массив двумерный как объявить?
...
На выходе хочу получить двумерный массив с которым хочу работать дальше.
Created by KorPaEv...

Последний раз редактировалось KorPaEv; 19.09.2011 в 11:50.
KorPaEv вне форума Ответить с цитированием
Старый 19.09.2011, 13:43   #2
shadowmaker
Пользователь
 
Регистрация: 21.07.2009
Сообщений: 21
По умолчанию

массив объявляется так:

Код:
char array[2][10];
а заполнять пиблизителбно так:
Код:
for (int i=0; i<10; i++)
f_op>>array[0][i]>>array[1][i]
тока я не знаю, будет он нормально считывать символы, не разделенные пробелами... скорее всего не будет. тогда читай строку и разбивай ее на 2 символа.
shadowmaker вне форума Ответить с цитированием
Старый 19.09.2011, 13:56   #3
KorPaEv
Пользователь
 
Аватар для KorPaEv
 
Регистрация: 08.07.2011
Сообщений: 42
По умолчанию

Цитата:
Сообщение от shadowmaker Посмотреть сообщение
массив объявляется так:

Код:
char array[2][10];
а заполнять пиблизителбно так:
Код:
for (int i=0; i<10; i++)
f_op>>array[0][i]>>array[1][i]
тока я не знаю, будет он нормально считывать символы, не разделенные пробелами... скорее всего не будет. тогда читай строку и разбивай ее на 2 символа.
В том то и дело, что мне надо 1ые байты поместить в первую строку а 2е во вторую и как разбить не могу понять.
Created by KorPaEv...
KorPaEv вне форума Ответить с цитированием
Старый 19.09.2011, 14:01   #4
shadowmaker
Пользователь
 
Регистрация: 21.07.2009
Сообщений: 21
По умолчанию

тогда приблизительно так:

Код:
char s[3];
for (int i=0; i<10; i++)
{
f_op>>s;
array[0][i]=s[0];
array[1][i]=s[1];
}
не скажу, что самый умный вариант, первое что пришло в голову

Последний раз редактировалось shadowmaker; 19.09.2011 в 14:04.
shadowmaker вне форума Ответить с цитированием
Старый 19.09.2011, 16:56   #5
БалаШагаЛ
Форумчанин
 
Регистрация: 11.02.2011
Сообщений: 131
По умолчанию

Код:
#include <iostream>
#include <stdio.h>
#include <conio.h>

int main()
{
    char array[2][10];
    char sim1,sim2;
    int j=0;
    FILE *F=fopen("File.txt","rt");
    while(1)
    {
        fscanf(F,"%c%c\n",&sim1,&sim2);
        array[0][j]=sim1;
        array[1][j]=sim2;
        if (feof(F))
        {
            break;
        }
        j+=1;
    }
}
БалаШагаЛ вне форума Ответить с цитированием
Старый 19.09.2011, 17:00   #6
oblom
Пользователь
 
Аватар для oblom
 
Регистрация: 22.09.2007
Сообщений: 71
По умолчанию версия

а вот мое нубное решение


Код:

#include<iostream.h>
#include<fstream>
#include<windows.h>
using namespace std;

int main(void)
{

char   array[2][10];
fstream inFile;
inFile.open("c:\\lotok1.txt",ios::in );
ofstream output("c:\\test4.txt",ios::app);


for (short  j=0; j<10; j++)
for (short i=0; i<2; i++)



{
  inFile>> array[i][j];

}



      for (short  j=0; j<10; j++)




{
   for (short i=0; i<2; i++)
{
  output<< array[i][j];
   output<<" ";
    

}
   output<<" \n";
  }
inFile.close();
system("PAUSE");


}
"Пилите, Шура, пилите. Они золотые".....
oblom вне форума Ответить с цитированием
Старый 19.09.2011, 17:46   #7
KorPaEv
Пользователь
 
Аватар для KorPaEv
 
Регистрация: 08.07.2011
Сообщений: 42
По умолчанию

Всем спасибо, буду разбираться и пробовать!
Created by KorPaEv...
KorPaEv вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заполнение двумерного массива pisikaker Паскаль, Turbo Pascal, PascalABC.NET 2 15.05.2011 10:01
заполнение двумерного массива katena88 Общие вопросы Delphi 1 14.12.2010 14:15
Заполнение двумерного массива (Delphi 7) Gerard Помощь студентам 3 24.05.2010 22:44
[Pascal] заполнение двумерного массива Рамик Помощь студентам 13 18.02.2009 20:08
Заполнение двумерного массива прямоугольников случайными изображениями Mischa Помощь студентам 1 11.03.2008 21:58