21.09.2014, 17:33 | |
Ответы с готовыми решениями:
73
Вывести самые распространенные женские и мужские имена Вывести самые распространенные мужские и женские имена Ошибки после компиляции на Visual Express 2012.Ошибки в теме Распространенные ошибки |
1468 / 1009 / 456
Регистрация: 30.10.2017
Сообщений: 2,800
|
||||||
05.03.2018, 01:38 | 61 | |||||
zss, не совсем понимаю в чем проблемность этой конструкции? cin игнорирует же символ конца строки. На двух компиляторах у меня проблем не возникает, может я просто чего то недопонимаю.
0
|
Модератор
13675 / 10886 / 6464
Регистрация: 18.12.2011
Сообщений: 29,047
|
|||||||||||
05.03.2018, 06:54 [ТС] | 62 | ||||||||||
QuakerRUS, а попробуйте
1
|
1468 / 1009 / 456
Регистрация: 30.10.2017
Сообщений: 2,800
|
|||||||||||||||||||||
05.03.2018, 16:11 | 63 | ||||||||||||||||||||
zss, на счет этих двух вариантов, да, согласен. cin оставляет в потоке символ конца страницы, а cin.get и cin.getline его считывают и получают пустое значение в итоге. Речь была именно о том варианте, где два cin, он указан в распространенных ошибках.
Добавлено через 1 час 4 минуты zss, в нижних двух примерах проблема так же будет наблюдаться, когда число вводится перед нажатием Enter
zss, в исправлении к этой ошибке в шестой строчке тоже старый вариант.
zss, я имел ввиду, что
1
|
Комп_Оратор)
|
|||||||||||
05.05.2020, 12:39 | 64 | ||||||||||
Прошу прощения, но не нашёл более подходящей рубрики. Надеюсь Сергей Сергеевич найдёт этому место, если сочтёт нужным.
Ошибка очень простая, но стакан крови может выпить легко) Бывает что хочется создать счетчики циклов вне цикла. Это бывает оправдано если значения требуются после выполнения циклов.
0
|
Модератор
8946 / 6712 / 921
Регистрация: 14.02.2011
Сообщений: 23,679
|
||||||||||||||||
05.05.2020, 12:49 | 65 | |||||||||||||||
могу показать и с одинарным,точнее с двумя
вывод всегда нужно присваивать в шапке цикла начальное значение
2
|
Комп_Оратор)
|
|
05.05.2020, 13:16 | 66 |
ValeryS, собственно - да. Это ошибка установки счётчика цикла. Во вложенных труднее искать, но смысл один. Там и итераторы могут быть:
В отладке он сегодня сгинул, ИтератОр не забегинил!
0
|
Вездепух
12756 / 6640 / 1786
Регистрация: 18.10.2014
Сообщений: 16,790
|
||||||||||||||||||||||||||
17.08.2020, 04:58 | 67 | |||||||||||||||||||||||||
Наивный подход к записи сложных объектов в бинарный файл
Работа с объектом, как с плоской непрерывной конечной последовательностью байтов, в таких контекстах, как, например, копирование при помощи memcpy или запись в бинарный файл, возможна только в том случае, если объект по своей сути действительно представляет собой тривиальную "плоскую" последовательность байтов. Например, такие типы как int или
B [20] являются примерами таких "плоских" типов. Это, в частности, означает то, что такие объекты можно смело записывать в бинарный файл и читать оттуда "одним махом", при помощи единственного вызова функции ввода-вывода1. Например
Нетривиальная внутренняя структура может возникнуть в объекте и неявным образом. Например, наличие в классе виртуальных методов или виртуальных базовых классов - это уже явное противопоказание против попыток тривиальной записи соответствующих объектов в бинарный файл, даже если в некоторых реализациях такие попытки могут приводить к работоспособным результатам 4. Также примерами типов с нетривиальной внутренней структурой являются типы, о внутренней структуре которых нам формально ничего не известно (и не должно быть известно). Например, внутренняя структура стандартных классов std::string или std::vector является деталью реализации и нас совершенно не касается. Это означает, что пытаться записывать в файл объекты типа std::string через
C содержит в себе подобъекты типа std::vector и str::string .Для того, чтобы правильно записать в файл такой сложный объект необходимо разработать специальный протокол/формат сериализации, т.е. аккуратно последовательно сохранить в файл все отдельные "кусочки" информации, которые в будущем позволят точно восстановить объект из файла в процессе чтения. Как правило это не получится сделать одной операцией записи/чтения. Таких операций понадобится несколько. Например, запись в бинарный файл и последующее чтение из бинарного файла объекта типа std::string может выглядеть следующим образом
--- 1) При этом, разумеется, нужно помнить, что такой способ записи работоспособен/портабелен только в рамках одной стабильной реализации (компилятора) языка С++ и набора настроек этого компилятора. Смена компилятора (или просто смена настроек компилятора) запросто может привести к изменению расположения элементов таких типов в памяти, размеров этих элементов и других деталей их бинарного представления, что приведет к тому, что ранее записанный бинарный файл станет нечитаемым (или потребует нетривиальных усилий для чтения). 2) Объект может содержать и указатели на самого себя 3) Однако если вы абсолютно стопроцентно уверены, что значение указателя останется актуальным с момента записи и до момента чтения, то указатель можно записывать в бинарный файл. Понятно, что такое возможно только для короткоживущих файлов: временных scratch-файлов или swap-файлов, как их обычно называют. 4) Можно добавить, что типы, не удовлетворяющие стандартному свойству std::is_trivially_copyable не совместимы с тривиальным способом записи. Однако требование std::is_trivially_copyable является лишь необходимым, не не достаточным условием возможности такой записи. Классы с указателями внутри запросто могут удовлетворять std::is_trivially_copyable , но все равно требовать нетривиальной записи.5) Не все стандартные типы являются такими "черными ящиками". Например, объекты стандартного класса std::array являются агрегатами и их можно смело записывать в файл "одним махом". Разумеется, при условии, что элементы массива std::array тоже допускают такой способ записи.
9
|
Croessmah
|
25.11.2020, 17:23
#71
|
0
|
25.11.2020, 17:38 | 72 |
Поспешил... У ТС эта тема уже озвучена:
Распространенные ошибки Croessmah, разница между ошибкой и опечаткой очень тонкая. Тем более, что есть еще оплошности и промахи.
0
|
Croessmah
|
25.11.2020, 19:30
#73
|
0
|
25.11.2020, 20:56 | 74 |
Кстати, вот книга на тему:
How Not to Program in C++: 111 Broken Programs and 3 Working Ones, or Why Does 2+2=5986 by Steve Oualline ISBN:1886411956
0
|
25.11.2020, 20:56 | |
25.11.2020, 20:56 | |
Помогаю со студенческими работами здесь
74
безопасность и распространенные ошибки безопасность и распространенные ошибки Распространенные ошибки SEO и ASP.NET 2.0 Самые распространенные строки Самые распространённые фамилии Распространённые схемы мошейничества с вайбером Самые распространенные мужское и женское имена Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |