![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
Hotrod |
|
|||
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 5.1.2010 Репутация: -1 Всего: -1 |
Всем доброго времени суток!
Дело вот в чем. В файле содержатся данные в формате: <Автор(char)> "<Название картины(char)>" <цена(double)> <возраст картины(int)> помогите, пожалуйста, забить это в структуру(список)(В Си, не в C++):
Заранее премного благодарен! |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
читаешь файл построчно, затем находишь в считанной строке первое включение символа двойных кавычек, все что до него - автор, затем находишь второе включение кавычек - все что между первыми и вторыми это название, оставшуюся часть строки парсишь с помощью sscanf(str+pos+1, "%lf %lf", &picture->r, &picture->age), где str - строка считанная из файла, pos - позиция последней кавычки, picture - указатель на переменную типа struct K.
Кстати, struct K - довольно странное название. Может стоит переименовать в PicInfo или во что-то, что сможет в дальнейшем понять, что же этот тип значит? Это сообщение отредактировал(а) bsa - 11.1.2010, 12:04 |
|||
|
||||
and277 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 9.4.2009 Репутация: нет Всего: нет |
bsa , а в с++ попроще разбор мне кажется....
![]() |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
||||
|
||||
and277 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 9.4.2009 Репутация: нет Всего: нет |
bsa , уже прочел шапку...
А поправьте меня если я ошибаюсь: в файл нет смысла записывать объекты, в которых есть указатели? |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Нет смысла записывать указатели. Строка в стиле Си (которая char*) тоже хранится скорее всего в виде указателя. Но почему-то ни у кого не возникает вопросов про необходимость ее сохранения. Так же и про остальные указатели - записывать нужно не значение указателя, а объект на который он ссылается, или еще как-нибудь его обозначать (индекс и т.п.).
|
|||
|
||||
and277 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 9.4.2009 Репутация: нет Всего: нет |
Спасибо... Доходчиво объяснил |
|||
|
||||
Hotrod |
|
|||
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 5.1.2010 Репутация: -1 Всего: -1 |
|
|||
|
||||
Hotrod |
|
|||
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 5.1.2010 Репутация: -1 Всего: -1 |
Все, теперь помогите мне это в список загнать ![]() Это сообщение отредактировал(а) Hotrod - 12.1.2010, 05:00 |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Hotrod, а тебе нельзя пользоваться такими стандартными функциями, как strlen, strcpy, strcspn и sscanf?
Это сообщение отредактировал(а) bsa - 12.1.2010, 11:36 |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
Через strtok будет еще проще:
|
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
xvr, у тебя ошибка:
|
|||
|
||||
xvr |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
Я в курсе. В твоем посте (2 штуки назад) довольно подробно расписанно как использовать strncpy. Я написал только самую суть, что бы не загромождать текст. Надеюсь, что ТС сможет дописать остальное ![]() |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |