What does the scanf function return?

Rachit picture Rachit · May 6, 2012 · Viewed 98.1k times · Source

I know that the signature of the scanf function is:

int scanf(const char *format, ...)

What is the int value returned from this function?

Answer

NPE picture NPE · May 6, 2012

From the man page:

NAME
       scanf,  fscanf, sscanf, vscanf, vsscanf, vfscanf 

       ...

RETURN VALUE
       These functions return the number of input items  successfully  matched
       and assigned, which can be fewer than provided for, or even zero in the
       event of an early matching failure.

       The value EOF is returned if the end of input is reached before  either
       the  first  successful conversion or a matching failure occurs.  EOF is
       also returned if a read error occurs, in which case the error indicator
       for  the  stream  (see ferror(3)) is set, and errno is set indicate the
       error.

In your case, scanf() can return 0, 1 or EOF.