Open In App

scanf in C

Last Updated : 13 Oct, 2025
Comments
Improve
Suggest changes
36 Likes
Like
Report

In C, scanf() is a standard input function used to read formatted data from the standard input stream (stdin), which is usually the keyboard.

  • It scans the input according to the specified format specifiers (like %d, %f, %s, etc.) and stores the values into the provided variable addresses.
  • The scanf() function is defined in the <stdio.h> header file.
C
#include <stdio.h>

int main() {
    int n;

    // Reading an integer input
    scanf("%d", &n); 
    printf("%d", n);
    return 0;
}


Output

10 (Enter by user)
10

Explanation: `scanf("%d", &n)` reads an integer from the keyboard and stores it in variable `n`. Here, `%d` specifies an integer input, and `&n` gives the memory address where the value is stored.

Syntax

The syntax of scanf() in C is similar to the syntax of printf().

C
scanf("format", address_of_args... );

Parameters:

  • format: It is the format string that contains the format specifiers(s).
  • address_of_args: Address of the variables where we want to store the input.

Return Value:

  • >0: The number of values converted and assigned successfully.
  •   0: No value was assigned.
  • <0: Read error encountered or end-of-file (EOF) reached before any assignment was made.

We use & operator to find the address of the variables by appending it before the variable name and format specifier to recognize which type of data to be store.

Examples format specifiers recognized by scanf:

%d to accept input of integers.
%ld to accept input of long integers
%lld to accept input of long long integers
%f to accept input of real number.
%c to accept input of character types.
%s to accept input of a string.

If you're interested in learning more about input handling and integrating it into complex data structures, the C Programming Course Online with Data Structures covers practical applications of input functions in C.

Examples of scanf

The below examples demonstrate the use of scanf for different types of input:

Reading Floating Point Value

C
#include <stdio.h>

int main() {
    float f;
  
    // Reading floating number 
    // and store in the float
    // variable f
    scanf("%f", &f);  
    printf("You entered: %f", f);
    return 0;
}


Output

3.21 (Enter by user)
3.210000

`scanf("%f", &f)` reads a floating-point number from the user and stores it in variable `f`. Here, `%f` specifies a float input, and `&f` provides the memory address to store the value.

Take Two Integers as Input

C
#include <stdio.h>

int main() {
    int a, b;
  
    // Reading two integers and storing
    // them in a and b
    scanf("%d %d", &a, &b);  
    printf("%d %d", a, b);
    return 0;
}


Output

3 7 (Enter by user)
3 7

Reading Text (Strings)

C
#include <stdio.h>

int main() {
    char name[50];
  
    // Reading a string
    scanf("%s", name);  
    printf("%s", name);
    return 0;
}


Console

Geeks For Geeks (Enter by user)
Geeks

In the above example, we read a single input until the first space, so when "Geeks For Geeks" is entered, only "Geeks" will be stored in name. Also, we don't need to use the &operator for the address of name.

Scanset Characters

In C, scanf() provides a feature called scanset characters using %[] that lets you read a sequence of characters until a certain condition.

C
scanf("%[^\n]", name);
  • This statement reads input from the user including spaces and stores it in the name variable. The format specifier %[^\n] is a scanset that tells scanf to read all characters except the newline (\n), stopping when the user presses Enter. It is useful for reading full lines of text.
C
#include <stdio.h>
int main()
{
    char name[50];

    // Reading a string with
    // whitespaces
    scanf("%[^\n]", name);
    printf("%s", name);
    return 0;
}


Output

Hello Geek (Enter by user)
Hello Geek

The code scanf("%[^\n]", name); reads a full line of text including spaces from the user and stores it in the array name. The printf("%s", name); then prints the entered text exactly as it was typed.


scanf() in C
Visit Course explore course icon
Article Tags :

Explore