16 / 16 / 1
Регистрация: 13.10.2012
Сообщений: 454
|
||||||||||||||||
1 | ||||||||||||||||
Ошибка в листинге в книге25.03.2013, 17:32. Показов 878. Ответов 7
Метки нет (Все метки)
Читаю книгу Стивена Праты С++. Сперва было норм, но потом переводчик забухал. Нашел кучу ляпов, но здесь ниасилил.
хэд Кликните здесь для просмотра всего текста
Кликните здесь для просмотра всего текста
методы
мэин
0
|
25.03.2013, 17:32 | |
Ответы с готовыми решениями:
7
Ошибка в книге? Ошибка в книге Шилдта? Очередная ошибка в книге? какая то ошибка в книге |
16 / 16 / 1
Регистрация: 13.10.2012
Сообщений: 454
|
|
26.03.2013, 02:06 [ТС] | 3 |
Просто программа прерывается после ввода первого выражения и вылетает с ошибкой. Если закомментировать эту строку то она работает некорректно, но вылетов нет.
0
|
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|||||||||||
26.03.2013, 02:37 | 4 | ||||||||||
Тут другое. В 9 строке ввод через cin >> происходит, после этого в потоке всегда остаётся '\n'. cin.get (temp, MaxLen); читает его первым, для него это пустая строка. Реакция у него такая: "Если пустая строка (т.е., '\n' - первый), то чтение останавливается и устанавливается failbit(в отличие от getline(char&, int)), символ '\n' остаётся в очереди (в отличие от getline(char&, int)), в строку ввода помещается '\0';" После этого поток становится нерабочим и срабатывает это (!cin):
1
|
16 / 16 / 1
Регистрация: 13.10.2012
Сообщений: 454
|
|
26.03.2013, 08:23 [ТС] | 5 |
Теперь программа ведет себя немного иначе: просит имя, после ввода можно ввести ещё что-то, потом закрывается. Про особенность cin я знал. Пытался нейтрализовать её использованием сразу после него cin.ignore (1);, но результат так же не впечатлил.
0
|
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
||||||
26.03.2013, 17:50 | 6 | |||||
Про всю программу я не знаю, я пишу насчёт куска кода в main(). Вот этот кусок, немного переделанный (name и массив sayings объявлены как string, и добавлено извлечение '\n' после работы cin >>) и результат работы кода:
1
|
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
||||||||||||||||
26.03.2013, 19:34 | 7 | |||||||||||||||
Сейчас посмотрел весь код. Для cin >> name ничего добавлять не нужно, здесь работает перегруженный оператор, в нём работает get(char&, int), после которого стоит конструкция убирающая '\n' из потока:
1
|
16 / 16 / 1
Регистрация: 13.10.2012
Сообщений: 454
|
|
29.03.2013, 12:55 [ТС] | 8 |
0
|
29.03.2013, 12:55 | |
29.03.2013, 12:55 | |
Помогаю со студенческими работами здесь
8
Сдвиг байтов, ошибка в книге? указатели,вроде ошибка в книге Ошибка в книге или я что то не понимаю ? Ошибка при подключении файла Sales_item.h из примера в книге Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |