Printf and Scanf device driver function

No, because they don't interact with devices at all. There are probably a good 5–6 layers of abstraction between printf/scanf and the actual device drivers.

Really the whole point of printf/scanf functions is that they use "standard I/O" – they only interact with abstract "file descriptors" provided by the OS. They actually don't even know whether a given file descriptor is reading from keyboard or a file or a TCP socket, because that's the job of the OS kernel.

(In fact, even in the "keyboard" case, the input file descriptor usually has nothing to do with actual keyboard devices but corresponds to another abstraction layer, the "tty" or "terminal device". And even that tty is virtualized – it could be a serial port, or an xterm window, or an SSH connection, or a telnet socket.)

As an example, if your program is running inside GNOME Terminal, you'll have:

physical keyboard device → kernel PS/2 device driver → /dev/input device abstraction (evdev) → the "libinput" event processing library → the X11 graphical environment (XInput2 events) → the GTK application toolkit → the VTE terminal emulator → kernel "pseudo-tty" (pty) device → 'stdin' file descriptor → C standard library FILE* abstraction → sscanf() function.