![]() |
|
Модераторы: bsa |
![]()
|
|
| FTTA |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 25.10.2011 Репутация: нет Всего: нет |
Есть такой код:
Когда програма уже выполняется, выдаётся ошибка access violation на строчку №22. Но когда сделать так Spusok[0].value=atoi(t); все работает Подскажите пожалуйста в чем причина, или посоветуйте хорошую книжку по С++. |
|||
|
||||
| NoviceF |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 313 Регистрация: 13.3.2012 Где: Ростов-на-Дону Репутация: 2 Всего: 2 |
зачем изобретать велосипед, если есть std::pair http://cplusplus.com/reference/utility/pair/?kw=pair
неинициализированные переменные могут доставить ряд проблем, благо компиляторы об этом предупреждают.
http://cplusplus.com/reference/istream/istream/get/ A pointer to an array of characters where the string is stored as a c-string Указатель, который передаётся в эту функцию, должен указывать на уже созданный массив, а ты предаёшь указатель, который указывает неизвестно куда (смотри пример использования по ссылке выше). Плюс указываешь длину читаемых символов 20, несмотря на то, что предполагается, что ты читаешь имя, длина которого 10 символов (11й на терминальный нуль). Дальше не смотрел, но сначала это исправить бы. И вообще, если уж используешь STL, лучше использовать его возможности, а не Си функции. Как учебник могу рекомендовать Герберт Шилдт C++ базовый курс, издание 2010. Это сообщение отредактировал(а) NoviceF - 11.2.2013, 18:23 |
||||||
|
|||||||
| korian |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 651 Регистрация: 8.3.2008 Где: Украина, Харьков Репутация: 2 Всего: 17 |
как раз в данном случае изобретать велосипед всегда имеет смысл. Я бы на самом деле std::pair нигде и никогда бы не использовал, кроме как для std::map. Хотя и в map я бы лучше вставил хрень с key/value полями, потому как я хочу знать по имени класса и по именам полей, что живет в этом классе, а не догадываться что такое first и что такое second. |
|||
|
||||
| NoviceF |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 313 Регистрация: 13.3.2012 Где: Ростов-на-Дону Репутация: 2 Всего: 2 |
Сам контейнер может называться достаточно красноречиво, чтобы понять, что такое first и что такое second, но на истину не претендую, в промышленном масштабе пока ничего не делал ) Но в любом случае, автору есть над чем подумать.. взять хотя бы хидеры, имя класса, поле name типа char, а не string.. |
|||
|
||||
| borisbn |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 21 Всего: 135 |
FTTA, весь ввод данных можно уложить в эти строки
итого получается
Это сообщение отредактировал(а) borisbn - 14.2.2013, 09:15 -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
||||
|
|||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
borisbn, хидеры забыл приинклюдить. У ТС с его знаниями языка на уровне турбо с++ могут возникнуть проблемы.
|
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 21 Всего: 135 |
bsa, подправил. и std:: добавил )
-------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
![]()
|
| Правила форума "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. |