これは迷信というより、本来は入門向けに難しい話をカットして説明するときの方便のようなものだったはずです。しかし、入門レベルのときはそれでよくても、入門者から次の段階に進む頃までその状況を引きずるべきではありません。また、入門者に指導する際も、難しい話を避けるのはよいとしても、誤った理解をさせてしまうのはどうかと思います。
標準関数のscanf関数は(gets, getchar, std::cinなどを用いても同じ)キーボードから入力するためものものではありません。これらの関数(またはオブジェクト)は、標準入力から読み込むためのものです。標準入力がどんなデバイスに結びつけられるかは実行環境次第ですので、こうした方法で必ずキーボードから入力されることを期待するのは危険です。
もちろん、特定用途および特定環境を想定した設計というのは普通にありますので、キーボードからの入力を想定することも”あり”ですが、自分が何をやろうとしているのかを理解しているのと、そうでないのとでは、雲泥の差があるのです。

![[迷信] FILE型は構造体](https://www.kijineko.co.jp/wp-content/uploads/2021/06/4285286_s.jpg)
![[迷信] setjmpマクロの返却値は変数に代入できる](https://www.kijineko.co.jp/wp-content/uploads/2021/06/4225767_s.jpg)
![[迷信] 入力データ格納用配列のサイズはBUFSIZ](https://www.kijineko.co.jp/wp-content/uploads/2021/06/buffer.png)
![[迷信] データ列のソートにはqsort関数を使うべし](https://www.kijineko.co.jp/wp-content/uploads/2021/06/4928218_s.jpg)
![[迷信] double の出力書式は"%lf"](https://www.kijineko.co.jp/wp-content/uploads/2021/05/4950885_s.jpg)
![[迷信] アルゴリズム関数内で関数オブジェクトはコピーされない](https://www.kijineko.co.jp/wp-content/uploads/2021/06/4845189_s.jpg)