считывание данных из файла в структуру?!
Пользователи, просматривающие топик: 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х линий….я думаю тут все понятно) Х начальная, Хконечная и т.д так вот….задача состоит в том, чтобы считать из файла эти данные и записать в динамическую структуру данных….=\ соответственно под примерно такими же названиями…. может кто знает, как это сделать…=\ буду НУ ОЧЕНЬ ПРИЗНАТЕЛЕН!!!!!!!!!!!
|
|
|
RE: считывание данных из файла в структуру?! - 2009-02-18 16:32:02.136666
|
|
|
QunneD
Сообщений: 833
Оценки: 0
Присоединился: 2008-11-09 20:54:38.113333
|
Сообственно сначало укажите на каком языке надо?
|
|
|
RE: считывание данных из файла в структуру?! - 2009-02-18 16:32:44.586666
|
|
|
Славутиччч
Сообщений: 52
Оценки: 0
Присоединился: 2009-02-18 16:14:42.276666
|
сорри…..С++….visual C++..)
|
|
|
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 <iostream>
#include <fstream>
#include <conio.h>
using namespace std;
void main()
{
char ch;
ifstream in("C:\\test.txt", ios::in );
if (!in)
{
cout << "Can't open file!\n";
}
while (in)
{
in.get(ch);
if(in) cout << ch;
}
in.close();
getch();
}
PS что то я насчет динамической структуры не понял , записать значения в массив ? так что ли ??
|
|
|
RE: считывание данных из файла в структуру?! - 2009-02-18 17:11:44.590000
|
|
|
Славутиччч
Сообщений: 52
Оценки: 0
Присоединился: 2009-02-18 16:14:42.276666
|
ну да…это то я понял и знаю как открывать… просто весь вопрос то в том, чтобы этот файл нужно считывать по значениям, которые разделены " ; " между координатами и " - " разделение координат между двумя разными линиями! И соответственно записывать их надо в структуру по элементно…наверное в структуре будет еще одна структура, в которой идет разделение на 2 линии…и какждая координата будет зарисываться в свою ячейку в свою линию.
|
|
|
RE: считывание данных из файла в структуру?! - 2009-02-19 01:59:42.520000
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
Ты можешь объявить любую структуру - в любом случае считывать придётся посимвольно - потом, как дойдёшь до разделителя - заносить данное в поле структуры (можно тупым присвоением). Прочитать всё "одним махом" тут не получится.
|
|
|
RE: считывание данных из файла в структуру?! - 2009-02-19 17:23:55.023333
|
|
|
Славутиччч
Сообщений: 52
Оценки: 0
Присоединился: 2009-02-18 16:14:42.276666
|
вот в этом то вся и проблема, что структуру то я объявлять умею, а вот как посимвольно считать, да еще учесть все эти разделители я не знаю((
|
|
|
RE: считывание данных из файла в структуру?! - 2009-02-19 17:50:19.920000
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
Тебе выше написали как
|
|
|
RE: считывание данных из файла в структуру?! - 2009-02-19 18:05:30.380000
|
|
|
Славутиччч
Сообщений: 52
Оценки: 0
Присоединился: 2009-02-18 16:14:42.276666
|
эммм….ну так это просто считывание из файла…а мне то нужно немного потяжелее задачу выполнить… разделить из файла данные и записать их в структуру…=\
|
|
|
RE: считывание данных из файла в структуру?! - 2009-02-19 18:23:51.220000
|
|
|
Славутиччч
Сообщений: 52
Оценки: 0
Присоединился: 2009-02-18 16:14:42.276666
|
мне нужен хотя бы принцип. как все это делать с примерами кода желательно…. причем ОЧЕНЬ нужен….
|
|
|
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 < 8; ++i)
{
fcin >> x[i] >> c;
}
строка вида: 11;22;33;44 - 55;66;77;88 таким образом считывается в массив в виде {11, 22, 33, 44, 55, 66, 77, 88} учитывая постановку задачи, тебе будет логично сделать структуру point как-то так:
struct point
{
double x_;
double y_;
};
и структуру line, аналогично:
struct line
{
point start_;
point end_;
};
ещё вопросы?
|
|
|
RE: считывание данных из файла в структуру?! - 2009-02-19 18:43:59.676666
|
|
|
Славутиччч
Сообщений: 52
Оценки: 0
Присоединился: 2009-02-18 16:14:42.276666
|
спасибо ОГРОМНОЕ) вполне неплохо…. будут вопросы - буду писать))
|
|
|
RE: считывание данных из файла в структуру?! - 2009-02-19 18:49:29.603333
|
|
|
Славутиччч
Сообщений: 52
Оценки: 0
Присоединился: 2009-02-18 16:14:42.276666
|
ну кстати вопрос еще в том, чтобы считать из TXT много строчек….=\
|
|
|
RE: считывание данных из файла в структуру?! - 2009-02-19 18:58:15.246666
|
|
|
Denaturat
Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
|
std::vector<line> lines;
char c;
while(!fcin.eof())
{
line l1, l2;
fcin >> l1.start_.x_ >> c >> l1.start_.y_ >> c >> l1.end_.x_ >> c >> l1.end_.y_ >> c;
fcin >> l2.start_.x_ >> c >> l2.start_.y_ >> c >> l2.end_.x_ >> c >> l2.end_.y_;
lines.push_back(l1);
lines.push_back(l2);
}
непонятно, зачем они у тебя там по две - но раз уж так, то я явно двойное считывание и выписал. в результате, правда, получим просто вектор линий. если нужны именно пары линий, надо ещё их сгруппировать (проще всего сделать вектор std::pair<line>) структуры при желании можно нагрузить какой-нибудь логикой (хотя бы самораспечатку)
|
|
|
RE: считывание данных из файла в структуру?! - 2009-02-19 19:08:31.470000
|
|
|
Славутиччч
Сообщений: 52
Оценки: 0
Присоединился: 2009-02-18 16:14:42.276666
|
если честно. то не очень понял смысл строчек кода в последнем сообщении….=\
|
|
|
RE: считывание данных из файла в структуру?! - 2009-02-19 19:31:19.966666
|
|
|
Denaturat
Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
|
что именно? там построчная вычитка файла указанного формата без каких-либо проверок, предполагается что файл у нас хороший
|
|
|
RE: считывание данных из файла в структуру?! - 2009-02-25 15:05:58.453333
|
|
|
Славутиччч
Сообщений: 52
Оценки: 0
Присоединился: 2009-02-18 16:14:42.276666
|
эммм…..тут новый вопрос возник….=\ а каким образом можно считать ТХТ файл посимвольно???
|
|
|
RE: считывание данных из файла в структуру?! - 2009-02-25 15:37:50.146666
|
|
|
Denaturat
Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
|
quote:
ORIGINAL: Славутиччч эммм…..тут новый вопрос возник….=\ а каким образом можно считать ТХТ файл посимвольно??? способов много. тебе с какой целью-то?
|
|
|
RE: считывание данных из файла в структуру?! - 2009-02-25 15:43:15.723333
|
|
|
Славутиччч
Сообщений: 52
Оценки: 0
Присоединился: 2009-02-18 16:14:42.276666
|
смысл в следующем…..буду считывать файл до ";" это значит одна координата и так далее, когда встретиться "/n" будет значить, что следующая строчка…..вот
|
|
|
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 >> c;
// делаем что-то с символом c
}
но смысл твоих действий по-прежнему ускользает от моего понимания почему не использовать стандартную библиотеку C/C++, в которой решение уже есть?
|
|
|
RE: считывание данных из файла в структуру?! - 2009-02-25 16:00:52.953333
|
|
|
Славутиччч
Сообщений: 52
Оценки: 0
Присоединился: 2009-02-18 16:14:42.276666
|
да просто смысл весь в том, что все это надо сделать без использывания стандартной библиотеки)это типо задание по практики и мы должны все сделать без их использывания….спасибо за помощь) а "с" это и есть символ считывамый?
|
|
|
RE: считывание данных из файла в структуру?! - 2009-02-25 16:09:06.570000
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
Странные задания… Вам бы ещё сказали - реализуйте сложение без использования арифметических операторов. Ну а вообще опыт в намисании собственных парсеров полезен.
|
|
|
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: Славутиччч а "с" это и есть символ считывамый? да. только по умолчанию у тебя считывание в текстовом режиме, учитывай это
|
|
|
RE: считывание данных из файла в структуру?! - 2009-02-25 16:13:33.696666
|
|
|
Славутиччч
Сообщений: 52
Оценки: 0
Присоединился: 2009-02-18 16:14:42.276666
|
а что значит в текстовом режиме??? будет тип char….
|
|
|
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…. глубокомысленно
|
|
|
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++; } }
|
|
|
RE: считывание данных из файла в структуру?! - 2009-02-26 13:34:27.523333
|
|
|
Славутиччч
Сообщений: 52
Оценки: 0
Присоединился: 2009-02-18 16:14:42.276666
|
ааа…ну еще забыл преписать if, который обнуляет tmp до нуля, когда он равен более 8….=\
|
|
|
RE: считывание данных из файла в структуру?! - 2009-02-26 14:33:45.490000
|
|
|
Denaturat
Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
|
ты там много чего забыл. логики работы этого кода лично я не понял совершенно
|
|
|
RE: считывание данных из файла в структуру?! - 2009-02-26 14:48:45.246666
|
|
|
Славутиччч
Сообщений: 52
Оценки: 0
Присоединился: 2009-02-18 16:14:42.276666
|
ну смысл в том, что доходит кога до ";" или новой строки он начинает записывать данное перед этим знаком в структуру, а когда доходит счетчик до 8 символа, то начинается новая запись в структуры…=\ мне просто так препод объяснил….)
|
|
|
RE: считывание данных из файла в структуру?! - 2009-02-26 15:23:51.253333
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
Твоя программа свалится по причине недопустимого обращения к памяти. Что такое char *str; ты представляешь? Это ведь совсем не строка :).
|
|
|
RE: считывание данных из файла в структуру?! - 2009-02-26 15:26:27.576666
|
|
|
Славутиччч
Сообщений: 52
Оценки: 0
Присоединился: 2009-02-18 16:14:42.276666
|
ну а как сделать???мне нужна не строка а символ) аааа…..чтож все так сложно((
|
|
|
RE: считывание данных из файла в структуру?! - 2009-02-26 15:44:06.930000
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
всё легко, если ты хоть немного учился программированию, а не сразу брался за задачи. P.S. 1 символ это char c;
|
|
|
RE: считывание данных из файла в структуру?! - 2009-02-26 15:45:21.560000
|
|
|
Славутиччч
Сообщений: 52
Оценки: 0
Присоединился: 2009-02-18 16:14:42.276666
|
ну да…..наверно….но мне к завтрому нужна хоть какая нить рабочая прога…=\
|
|
|
RE: считывание данных из файла в структуру?! - 2009-02-26 16:55:28
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
Честно? Влом за тебя писать ))
|
|
|
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; }
|
|
|
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
|
|
|
RE: считывание данных из файла в структуру?! - 2009-02-26 17:17:44.973333
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
На русский пробовал переводить? :) www.translate.ru
|
|
|
RE: считывание данных из файла в структуру?! - 2009-02-26 17:18:05.366666
|
|
|
Из Абамы в бараки
Сообщений: 2
Оценки: 0
Присоединился: 2009-02-26 10:15:57.766666
|
путь до либы stdafx.h - либо полный пропиши, либо в патч диру данной либы с ребутом.
|
|
|
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' убери. В этой программе оно тебе не нужно.
|
|
|
RE: считывание данных из файла в структуру?! - 2009-02-26 18:00:02.026666
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
quote:
ORIGINAL: Из Абамы в бараки путь до либы stdafx.h - либо полный пропиши, либо в патч диру данной либы с ребутом. Аффтар, ты что курил? С каких это пор текстовые заголовочные файлы стали библиотеками :D ? Со всеми вытекающими ребутами…
|
|
|
|
|