Да, в поток передаётся и символ перевода строки тоже. Scanf, как я поэкспериментировал, использовать не стоит: несколько способов считать символ, как scanf("%c", …) и getchar(), действуют одинаково, но пропускать «хвост» до перевода строки придётся самому.
Можно ли пользоваться?
• Самописными шаблонами C++?
• Готовыми шаблонами STL?
• Стандартом C++11?