Страницы

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

четверг, 19 марта 2020 г.

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

#cpp


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

int через scanf, а char[] через cin 
int через cin, а char[] через scanf

то это приводит к неправильному ответу. Если же оба параметра считываем одинаковой
функцией, то решение проходит. 
Поэтому возник вопрос: при каких ситуациях возможны конфликты между этими функциями.    


Ответы

Ответ 1



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

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

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