|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
01.12.2009, 20:08 | #1 |
Пользователь
Регистрация: 19.06.2009
Сообщений: 57
|
Корявое копирование строки. Помогите найти ошибку.
Вот недавно прочитал тему про классы в С++ и решил написать свою программу, использующую классы.
Для тестирования конструктора попробовал сначала просто ввести данные прямо из программы. Вот код Код:
Может я что-то намудрил с указателями? Пишу в Dev-C++ |
01.12.2009, 20:28 | #2 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
name и tipe объявите как char* и выделяйте под них память в конструкторе
|
01.12.2009, 23:23 | #3 |
Пользователь
Регистрация: 19.06.2009
Сообщений: 57
|
name и tipe как char* объявил, а как выделить под них память в конструкторе? а то я ещё не очень хорошо с этой темой знаком...
|
01.12.2009, 23:26 | #4 |
Пользователь
Регистрация: 19.06.2009
Сообщений: 57
|
всё, вопрос решил сам. помогло предварительное определение размера массивов в самом классе
|
01.12.2009, 23:51 | #5 |
Куды бечь?
Форумчанин
Регистрация: 05.10.2009
Сообщений: 104
|
Код:
Не хватало всего одного байта. Да-да, того самого, что из восьми бит состоит.
|
01.12.2009, 23:56 | #6 | |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
Цитата:
Код:
|
|
02.12.2009, 00:21 | #7 | |
Пользователь
Регистрация: 19.06.2009
Сообщений: 57
|
Цитата:
эти 2 функции используются для нормального отображения русского текста: одна для ввода, другая - для вывода. давно ещё где-то вычитал, а теперь уже в привычку вошло в начале всегда эти 2 функции писать. только это работает при установке в консоли шрифта Lucida Console |
|
02.12.2009, 00:44 | #8 |
Пользователь
Регистрация: 19.06.2009
Сообщений: 57
|
Вот блин же... от одной проблемы избавился, так появилась другая...
После того, как задал изначальный размер массивов в классе, всё шло хорошо. Потом я захотел немного изменить конструктор так, чтобы он предлагал пользователю вручную ввести данные о товаре. Весь класс и методы (с конструктором) компилируется нормально, но вот ругается уже под конец на строку 68 Код:
причём тут какой-то tovar ()()? уже всё перепробовал, не получается(( думал, может нечаянно что-то удалил или дописал лишнего, но вроде всё осталось, как было... вот ещё раз привожу весь код с внесёнными изменениями: Код:
Последний раз редактировалось GonZaleZ; 02.12.2009 в 00:47. |
02.12.2009, 00:54 | #9 |
Студент 1 курса
Форумчанин Подтвердите свой е-майл
Регистрация: 27.06.2008
Сообщений: 959
|
Код:
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
|
02.12.2009, 01:10 | #10 | ||
Пользователь
Регистрация: 19.06.2009
Сообщений: 57
|
Спасибо. Попробовал написать просто tovar hleb; - тоже работает.
Но, блин, теперь ещё одна проблема... Надеюсь, последняя. При выполнении программы почему-то пропускается cin.getline(tname, 128);, т.е. на экран выводится Цитата:
Цитата:
почему может пропускаться предложение ввести имя? |
||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Строки. Помогите найти ошибку. | 5nizza77 | Помощь студентам | 1 | 16.10.2009 16:10 |
Помогите найти ошибку | smitters | Общие вопросы C/C++ | 9 | 06.07.2009 18:42 |
Помогите найти ошибку | REztor | Помощь студентам | 5 | 16.03.2009 20:04 |