Страницы

Поиск по вопросам

пятница, 7 июня 2019 г.

В каких случаях совместное использование cin и scanf может привести к ошибке?

Считается плохим тоном использовать С и С++ функции чтения потока в одной программе. Но тем не менее ранее это никогда не приводило к ошибкам. Совсем недавно, решая задачу, в которой нужно последовательно читать int и char[] столкнулся с такой ситуацией. Если читаем: int через scanf, а char[] через cin int через cin, а char[] через scanf то это приводит к неправильному ответу. Если же оба параметра считываем одинаковой функцией, то решение проходит. Поэтому возник вопрос: при каких ситуациях возможны конфликты между этими функциями.


Ответ

Скорее всего, вы делаете что-то неправильно. По умолчанию библиотеки ввода вывода C и C++ синхронизированы, поэтому можно безопасно чередовать использование функций из одной и другой библиотеки. Синхронизацию можно включить-выключить явно, используя функцию std::ios_base::sync_with_stdio

Комментариев нет:

Отправить комментарий