Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

считывание данных из файла в структуру?!

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> считывание данных из файла в структуру?!
Имя
Сообщение << Старые топики   Новые топики >>
считывание данных из файла в структуру?! - 2009-02-18 16:27:01.803333   
Славутиччч

Сообщений: 52
Оценки: 0
Присоединился: 2009-02-18 16:14:42.276666
Здраствуйте!)
Вообщем проблема у меня возникла примерно следующая…..
есть у меня файлик с данными записанными в виде: Xn;Yk;Xn;Yk - Xn;Yk;Xn;Yk
это соответственно координаты 2х линий….я думаю тут все понятно) Х начальная, Хконечная и т.д

так вот….задача состоит в том, чтобы считать из файла эти данные и записать в динамическую структуру данных….=\
соответственно под примерно такими же названиями….
может кто знает, как это сделать…=\
буду НУ ОЧЕНЬ ПРИЗНАТЕЛЕН!!!!!!!!!!!
Post #: 1
RE: считывание данных из файла в структуру?! - 2009-02-18 16:32:02.136666   
QunneD

Сообщений: 833
Оценки: 0
Присоединился: 2008-11-09 20:54:38.113333
Сообственно сначало укажите на каком языке надо?
Post #: 2
RE: считывание данных из файла в структуру?! - 2009-02-18 16:32:44.586666   
Славутиччч

Сообщений: 52
Оценки: 0
Присоединился: 2009-02-18 16:14:42.276666
сорри…..С++….visual C++..)
Post #: 3
RE: считывание данных из файла в структуру?! - 2009-02-18 17:05:00.553333   
joker23

Сообщений: 36
Оценки: 0
Присоединился: 2009-01-20 18:02:37.540000
Смотри вот так можно открыть файл и он выведет тебе содержимое твоего файла
// test.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;conio.h&gt; using namespace std; void main() { char ch; ifstream in("C:\\test.txt", ios::in ); if (!in) { cout &lt;&lt; "Can't open file!\n"; } while (in) { in.get(ch); if(in) cout &lt;&lt; ch; } in.close(); getch(); }
PS что то я насчет динамической структуры не понял , записать значения в массив ? так что ли ??
Post #: 4
RE: считывание данных из файла в структуру?! - 2009-02-18 17:11:44.590000   
Славутиччч

Сообщений: 52
Оценки: 0
Присоединился: 2009-02-18 16:14:42.276666
ну да…это то я понял и знаю как открывать…
просто весь вопрос то в том, чтобы этот файл нужно считывать по значениям, которые разделены " ; " между координатами и " - " разделение координат между двумя разными линиями!
И соответственно записывать их надо в структуру по элементно…наверное в структуре будет еще одна структура, в которой идет разделение на 2 линии…и какждая координата будет зарисываться в свою ячейку в свою линию.
Post #: 5
RE: считывание данных из файла в структуру?! - 2009-02-19 01:59:42.520000   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Ты можешь объявить любую структуру - в любом случае считывать придётся посимвольно - потом, как дойдёшь до разделителя - заносить данное в поле структуры (можно тупым присвоением). Прочитать всё "одним махом" тут не получится.
Post #: 6
RE: считывание данных из файла в структуру?! - 2009-02-19 17:23:55.023333   
Славутиччч

Сообщений: 52
Оценки: 0
Присоединился: 2009-02-18 16:14:42.276666
вот в этом то вся и проблема, что структуру то я объявлять умею, а вот как посимвольно считать, да еще учесть все эти разделители я не знаю((
Post #: 7
RE: считывание данных из файла в структуру?! - 2009-02-19 17:50:19.920000   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Тебе выше написали как
Post #: 8
RE: считывание данных из файла в структуру?! - 2009-02-19 18:05:30.380000   
Славутиччч

Сообщений: 52
Оценки: 0
Присоединился: 2009-02-18 16:14:42.276666
эммм….ну так это просто считывание из файла…а мне то нужно немного потяжелее задачу выполнить…
разделить из файла данные и записать их в структуру…=\
Post #: 9
RE: считывание данных из файла в структуру?! - 2009-02-19 18:23:51.220000   
Славутиччч

Сообщений: 52
Оценки: 0
Присоединился: 2009-02-18 16:14:42.276666
мне нужен хотя бы принцип. как все это делать с примерами кода желательно….
причем ОЧЕНЬ нужен….
Post #: 10
RE: считывание данных из файла в структуру?! - 2009-02-19 18:35:45.750000   
Denaturat

Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
quote:

ORIGINAL: Славутиччч

эммм….ну так это просто считывание из файла…а мне то нужно немного потяжелее задачу выполнить…
разделить из файла данные и записать их в структуру…=\


простой вариант на iostreams:

std::ifstream fcin("1.txt"); double x[8] = {0}; char c; for(int i = 0; i &lt; 8; ++i) { &nbsp;&nbsp;&nbsp; fcin &gt;&gt; x[i] &gt;&gt; c; }
строка вида:
11;22;33;44 - 55;66;77;88

таким образом считывается в массив в виде {11, 22, 33, 44, 55, 66, 77, 88}

учитывая постановку задачи, тебе будет логично сделать структуру point как-то так:

struct point { &nbsp;&nbsp;&nbsp; double x_; &nbsp;&nbsp;&nbsp; double y_; };
и структуру line, аналогично:

struct line { &nbsp;&nbsp;&nbsp; point start_; &nbsp;&nbsp;&nbsp; point end_; };
ещё вопросы?
Post #: 11
RE: считывание данных из файла в структуру?! - 2009-02-19 18:43:59.676666   
Славутиччч

Сообщений: 52
Оценки: 0
Присоединился: 2009-02-18 16:14:42.276666
спасибо ОГРОМНОЕ)
вполне неплохо….
будут вопросы - буду писать))
Post #: 12
RE: считывание данных из файла в структуру?! - 2009-02-19 18:49:29.603333   
Славутиччч

Сообщений: 52
Оценки: 0
Присоединился: 2009-02-18 16:14:42.276666
ну кстати вопрос еще в том, чтобы считать из TXT много строчек….=\
Post #: 13
RE: считывание данных из файла в структуру?! - 2009-02-19 18:58:15.246666   
Denaturat

Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
std::vector&lt;line&gt; lines; char c; while(!fcin.eof()) { &nbsp;&nbsp;&nbsp; line l1, l2; &nbsp;&nbsp;&nbsp; fcin &gt;&gt; l1.start_.x_ &gt;&gt; c &gt;&gt; l1.start_.y_ &gt;&gt; c &gt;&gt; l1.end_.x_ &gt;&gt; c &gt;&gt; l1.end_.y_ &gt;&gt; c; &nbsp;&nbsp;&nbsp; fcin &gt;&gt; l2.start_.x_ &gt;&gt; c &gt;&gt; l2.start_.y_ &gt;&gt; c &gt;&gt; l2.end_.x_ &gt;&gt; c &gt;&gt; l2.end_.y_; &nbsp;&nbsp;&nbsp; lines.push_back(l1); &nbsp;&nbsp;&nbsp; lines.push_back(l2); }
непонятно, зачем они у тебя там по две - но раз уж так, то я явно двойное считывание и выписал. в результате, правда, получим просто вектор линий. если нужны именно пары линий, надо ещё их сгруппировать (проще всего сделать вектор std::pair<line>)

структуры при желании можно нагрузить какой-нибудь логикой (хотя бы самораспечатку)
Post #: 14
RE: считывание данных из файла в структуру?! - 2009-02-19 19:08:31.470000   
Славутиччч

Сообщений: 52
Оценки: 0
Присоединился: 2009-02-18 16:14:42.276666
если честно. то не очень понял смысл строчек кода в последнем сообщении….=\
Post #: 15
RE: считывание данных из файла в структуру?! - 2009-02-19 19:31:19.966666   
Denaturat

Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
что именно? там построчная вычитка файла указанного формата

без каких-либо проверок, предполагается что файл у нас хороший
Post #: 16
RE: считывание данных из файла в структуру?! - 2009-02-25 15:05:58.453333   
Славутиччч

Сообщений: 52
Оценки: 0
Присоединился: 2009-02-18 16:14:42.276666
эммм…..тут новый вопрос возник….=\
а каким образом можно считать ТХТ файл посимвольно???
Post #: 17
RE: считывание данных из файла в структуру?! - 2009-02-25 15:37:50.146666   
Denaturat

Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
quote:

ORIGINAL: Славутиччч

эммм…..тут новый вопрос возник….=\
а каким образом можно считать ТХТ файл посимвольно???


способов много. тебе с какой целью-то?
Post #: 18
RE: считывание данных из файла в структуру?! - 2009-02-25 15:43:15.723333   
Славутиччч

Сообщений: 52
Оценки: 0
Присоединился: 2009-02-18 16:14:42.276666
смысл в следующем…..буду считывать файл до ";" это значит одна координата и так далее, когда встретиться "/n" будет значить, что следующая строчка…..вот
Post #: 19
RE: считывание данных из файла в структуру?! - 2009-02-25 15:56:54.163333   
Denaturat

Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
quote:

ORIGINAL: Славутиччч

смысл в следующем…..буду считывать файл до ";" это значит одна координата и так далее, когда встретиться "/n" будет значить, что следующая строчка…..вот


а зачем? хочешь вручную написать парсер, который и так уже есть в scanf и iostreams?

посимвольно можно, например, так:

char c; while(!fcin.eof()) { fcin &gt;&gt; c; // делаем что-то с символом c }
но смысл твоих действий по-прежнему ускользает от моего понимания

почему не использовать стандартную библиотеку C/C++, в которой решение уже есть?
Post #: 20
RE: считывание данных из файла в структуру?! - 2009-02-25 16:00:52.953333   
Славутиччч

Сообщений: 52
Оценки: 0
Присоединился: 2009-02-18 16:14:42.276666
да просто смысл весь в том, что все это надо сделать без использывания стандартной библиотеки)это типо задание по практики и мы должны все сделать без их использывания….спасибо за помощь)

а "с" это и есть символ считывамый?
Post #: 21
RE: считывание данных из файла в структуру?! - 2009-02-25 16:09:06.570000   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Странные задания… Вам бы ещё сказали - реализуйте сложение без использования арифметических операторов. Ну а вообще опыт в намисании собственных парсеров полезен.
Post #: 22
RE: считывание данных из файла в структуру?! - 2009-02-25 16:12:11.143333   
Denaturat

Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
quote:

ORIGINAL: Славутиччч

да просто смысл весь в том, что все это надо сделать без использывания стандартной библиотеки)это типо задание по практики и мы должны все сделать без их использывания….спасибо за помощь)


без использования стандартной библиотеки? в смысле самому написать scanf? ну тогда исходники glibc в помощь:

http://sources.redhat.com/glibc/

quote:

ORIGINAL: Славутиччч

а "с" это и есть символ считывамый?


да. только по умолчанию у тебя считывание в текстовом режиме, учитывай это
Post #: 23
RE: считывание данных из файла в структуру?! - 2009-02-25 16:13:33.696666   
Славутиччч

Сообщений: 52
Оценки: 0
Присоединился: 2009-02-18 16:14:42.276666
а что значит в текстовом режиме???
будет тип char….
Post #: 24
RE: считывание данных из файла в структуру?! - 2009-02-25 16:19:01.356666   
Denaturat

Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
quote:

ORIGINAL: Славутиччч

а что значит в текстовом режиме???


http://www.cplusplus.com/forum/beginner/4651/

quote:

ORIGINAL: Славутиччч

будет тип char….


глубокомысленно
Post #: 25
RE: считывание данных из файла в структуру?! - 2009-02-26 13:14:19.830000   
Славутиччч

Сообщений: 52
Оценки: 0
Присоединился: 2009-02-18 16:14:42.276666
вот я тут набросал прогу…..но как ее завершить не знаю….может кто поможет??


#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <conio.h>
using namespace std;

struct point
{
    int x_;
    int y_;
};

struct line
{
    point start_;
    point end_;
};   


void main()
{
char *str;
int tmp;

while(!fcin.eof(1.txt))
{
    fcin >> *str;

    if (str==(';' or '/n'))
    {
        switch(tmp)
        {
            0: line.start.x=atoi(*str-1); break;
            1: line.start.y=atoi(*str-1); break;
            2: line.end.x=atoi(*str-1); break;
            3: line.end.y=atoi(*str-1); break;
            4: line.start.x=atoi(*str-1); break;
            5: line.start.y=atoi(*str-1); break;
            6: line.end.x=atoi(*str-1); break;
            7: line.end.y=atoi(*str-1); break;
            8: new line()
        }

        tmp++;
    }
}

Post #: 26
RE: считывание данных из файла в структуру?! - 2009-02-26 13:34:27.523333   
Славутиччч

Сообщений: 52
Оценки: 0
Присоединился: 2009-02-18 16:14:42.276666
ааа…ну еще забыл преписать if, который обнуляет tmp до нуля, когда он равен более 8….=\
Post #: 27
RE: считывание данных из файла в структуру?! - 2009-02-26 14:33:45.490000   
Denaturat

Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
ты там много чего забыл. логики работы этого кода лично я не понял совершенно
Post #: 28
RE: считывание данных из файла в структуру?! - 2009-02-26 14:48:45.246666   
Славутиччч

Сообщений: 52
Оценки: 0
Присоединился: 2009-02-18 16:14:42.276666
ну смысл в том, что доходит кога до ";" или новой строки он начинает записывать данное перед этим знаком в структуру, а когда доходит счетчик до 8 символа, то начинается новая запись в структуры…=\
мне просто так препод объяснил….)
Post #: 29
RE: считывание данных из файла в структуру?! - 2009-02-26 15:23:51.253333   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Твоя программа свалится по причине недопустимого обращения к памяти. Что такое char *str; ты представляешь? Это ведь совсем не строка :).
Post #: 30
RE: считывание данных из файла в структуру?! - 2009-02-26 15:26:27.576666   
Славутиччч

Сообщений: 52
Оценки: 0
Присоединился: 2009-02-18 16:14:42.276666
ну а как сделать???мне нужна не строка а символ)
аааа…..чтож все так сложно((
Post #: 31
RE: считывание данных из файла в структуру?! - 2009-02-26 15:44:06.930000   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
всё легко, если ты хоть немного учился программированию, а не сразу брался за задачи.

P.S. 1 символ это char c;
Post #: 32
RE: считывание данных из файла в структуру?! - 2009-02-26 15:45:21.560000   
Славутиччч

Сообщений: 52
Оценки: 0
Присоединился: 2009-02-18 16:14:42.276666
ну да…..наверно….но мне к завтрому нужна хоть какая нить рабочая прога…=\
Post #: 33
RE: считывание данных из файла в структуру?! - 2009-02-26 16:55:28   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Честно? Влом за тебя писать ))
Post #: 34
RE: считывание данных из файла в структуру?! - 2009-02-26 16:57:48.253333   
Славутиччч

Сообщений: 52
Оценки: 0
Присоединился: 2009-02-18 16:14:42.276666
да я понимаю)
вот сижу уже 2 день парюсь над всем этим….вот тут немного исправил…но все равно лажа полная получается….)

#include 'stdafx.h'
#include <iostream>
#include <fstream>
#include <conio.h>
using namespace std;


struct line
{
point start_
    struct point1
    {
        int x_;
        int y_;
    };
point end_
    struct point2
    {
        int x_;
        int y_;
    };
};   

   
void main()
{
char c;
int tmp;

while(!fcin.eof("1.txt"))
{
    fcin >> c;

    if (c==(';' or '/n'))
    {
        switch(tmp)
        {
            case 0: line.start_.x_=atoi(c-1); break;
            case 1: line.start_.y_=atoi(c-1); break;
            case 2: line.end_.x_=atoi(c-1); break;
            case 3: line.end_.y_=atoi(c-1); break;
            case 4: line.start_.x_=atoi(c-1); break;
            case 5: line.start_.y_=atoi(c-1); break;
            case 6: line.end_.x_=atoi(c-1); break;
            case 7: line.end_.y_=atoi(c-1); break;
            case 8: new line(); break;
        }

        tmp++;
        if (tmp>=8) tmp=0;
    }
}

cout<<line.start_<<endl;
}
Post #: 35
RE: считывание данных из файла в структуру?! - 2009-02-26 17:13:19.530000   
Славутиччч

Сообщений: 52
Оценки: 0
Присоединился: 2009-02-18 16:14:42.276666
понял что структуру надо ставить, как в предпоследнем примере)
и вот….из-за чего он мн вот эту ошибку выдает?
d:\program files\microsoft visual studio\myprojects\motorola\main.cpp(1) : fatal error C1083: Cannot open include file: 'stdafx.h': No such file or directory

Post #: 36
RE: считывание данных из файла в структуру?! - 2009-02-26 17:17:44.973333   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
На русский пробовал переводить? :) www.translate.ru
Post #: 37
RE: считывание данных из файла в структуру?! - 2009-02-26 17:18:05.366666   
Из Абамы в бараки

Сообщений: 2
Оценки: 0
Присоединился: 2009-02-26 10:15:57.766666
путь до либы stdafx.h - либо полный пропиши, либо в патч диру данной либы с ребутом.
Post #: 38
RE: считывание данных из файла в структуру?! - 2009-02-26 17:42:28.163333   
Archivarius

Сообщений: 164
Оценки: 0
Присоединился: 2008-10-26 00:16:25.630000
quote:

ORIGINAL: Из Абамы в бараки
путь до либы stdafx.h - либо полный пропиши, либо в патч диру данной либы с ребутом.
чё за бред.

Аффтар, вот это: #include 'stdafx.h' убери. В этой программе оно тебе не нужно.
Post #: 39
RE: считывание данных из файла в структуру?! - 2009-02-26 18:00:02.026666   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333

quote:

ORIGINAL: Из Абамы в бараки

путь до либы stdafx.h - либо полный пропиши, либо в патч диру данной либы с ребутом.


Аффтар, ты что курил? С каких это пор текстовые заголовочные файлы стали библиотеками :D ? Со всеми вытекающими ребутами…
Post #: 40
Страниц:  [1] 2 3
Все форумы >> [Компилируемые языки] >> считывание данных из файла в структуру?!







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.