Easy Tutorial
❮ C Header Files C Function Islower ❯

C Library Function - fscanf()

C Standard Library - <stdio.h>

Description

The C library function int fscanf(FILE *stream, const char *format, ...) reads formatted input from the stream.

Declaration

Here is the declaration for the fscanf() function.

int fscanf(FILE *stream, const char *format, ...)

Parameters

Parameter Description
* An optional asterisk, indicating that data is read from the stream but ignored, i.e., it is not stored in the corresponding argument.
width Specifies the maximum number of characters to be read in the current read operation.
modifiers Specifies a size different from int (for d, i, and n), unsigned int (for o, u, and x), or float (for e, f, and g) for the corresponding additional argument:

h: short int (for d, i, and n), or unsigned short int (for o, u, and x) l: long int (for d, i, and n), or unsigned long int (for o, u, and x), or double (for e, f, and g) L: long double (for e, f, and g) | | type | A character specifying the type of data to be read and how it is expected to be read. See the next table. |

fscanf Type Specifiers:

Type Qualified Input Argument Type
c Single character: reads the next character. If a width different from 1 is specified, the function reads width characters and stores them in the array passed as argument, leaving no trailing null character. char *
d Decimal integer: the prefix + or - is optional. int *
e,E,f,g,G Floating point: includes a decimal point, an optional sign, an optional e or E, and a decimal number. Valid examples: -732.103 and 7.12e4 float *
o Octal integer. int *
s String: reads consecutive characters until a whitespace is found. char *
u Unsigned decimal integer. unsigned int *
x,X Hexadecimal integer. int *

Return Value

On success, the function returns the number of items successfully matched and assigned. If the end of the file is reached or a read error occurs, EOF is returned.

Example

The following example demonstrates the use of the fscanf() function.

#include <stdio.h>
#include <stdlib.h>

int main()
{
   char str1[10], str2[10], str3[10];
   int year;
   FILE * fp;

   fp = fopen ("file.txt", "w+");
   fputs("We are in 2014", fp);

   rewind(fp);
   fscanf(fp, "%s %s %s %d", str1, str2, str3, &year);

   printf("Read String1 |%s|\n", str1 );
   printf("Read String2 |%s|\n", str2 );
   printf("Read String3 |%s|\n", str3 );
   printf("Read Integer |%d|\n", year );

   fclose(fp);

   return(0);
}

Let's compile and run the above program, which will produce the following result:

Read String1 |We|
Read String2 |are|
Read String3 |in|
Read Integer |2014|

C Standard Library - <stdio.h>

❮ C Header Files C Function Islower ❯