Friday, March 29, 2019

Difference between scanf() and gets() in C || what is scanf and get function in C language

Difference between scanf() and gets() in C

scanf()

  • It is used to read the input(character, string, numeric data) from the standard input(keyboard).
  • It is used to read the input until it encounters a whitespace, newline or End Of File(EOF).
// C program to see how scanf() 
// stops reading input after whitespaces 

#include <stdio.h> 
int main() 
char str[20]; 
printf("enter something\n"); 
scanf("%s", str); 
printf("you entered: %s\n", str); 

return 0; 


Here the input will be provided by the user and output will be as follows:
Input: Geeks for Geeks
Output: Geeks

Input: Computer science
Output: Computer

gets

  • It is used to read input from the standard input(keyboard).
  • It is used to read the input until it encounters newline or End Of File(EOF).
// C program to show how gets() 
// takes whitespace as a string. 

#include <stdio.h> 
int main() 
char str[20]; 
printf("enter something\n"); 
gets(str); 
printf("you entered : %s\n", str); 
return 0; 


Here input will be provided by user as follows
Input: Geeks for Geeks
Output: Geeks for Geeks

Input: Computer science
Output: Computer science
The main difference between them is:
  1. scanf() reads input until it encounters whitespace, newline or End Of File(EOF) whereas gets() reads input until it encounters newline or End Of File(EOF), gets() does not stop reading input when it encounters whitespace instead it takes whitespace as a string.
  2. scanf can read multiple values of different data types whereas gets() will only get character string data.
The difference can be shown in tabular form as follows:

No comments:

Post a Comment