There are multiple differences. Two crucial ones are:
fgets()
can read from any open file, butscanf()
only reads standard input.fgets()
reads ‘a line of text’ from a file;scanf()
can be used for that but also handles conversions from string to built in numeric types.
Many people will use fgets()
to read a line of data and then use sscanf()
to dissect it.