How to Read Integer Input in C
Introduction
Reading integer input from the user is a fundamental operation in C programming. It’s essential to understand how to read integer input to perform various tasks, such as calculating sums, finding the maximum or minimum value, and more. In this article, we’ll explore the scanf function in C, which is used to read integer input from the user.
What is scanf?
scanf is a built-in function in C that reads input from the standard input stream (usually the keyboard) and stores it in a variable. It’s a versatile function that can read different types of input, including integers, floats, strings, and more.
Basic Syntax of scanf
The basic syntax of scanf is as follows:
scanf( format, variables );
formatis a string that specifies the format of the input data.variablesis an array of variables that will store the input data.
Example of scanf
Here’s an example of how to use scanf to read an integer input:
#include <stdio.h>
int main() {
int num;
printf("Enter an integer: ");
scanf( "%d", &num );
printf("You entered: %dn", num );
return 0;
}
In this example, we use scanf to read an integer input from the user. The format string %d tells scanf to expect an integer input. The &num syntax tells scanf to store the input data in the num variable.
Format Specifiers
Format specifiers are used to specify the format of the input data. Here are some common format specifiers:
%d: decimal integer%c: single character%s: string%f: floating-point number%x: hexadecimal integer%o: octal integer%e: scientific notation
Here’s an example of how to use format specifiers:
#include <stdio.h>
int main() {
int num;
printf("Enter an integer: ");
scanf( "%d", &num );
printf("You entered: %dn", num );
printf("You entered as a string: %sn", num );
return 0;
}
In this example, we use format specifiers to read an integer input and a string input.
Example of scanf with format specifiers
Here’s an example of how to use scanf with format specifiers:
#include <stdio.h>
int main() {
int num;
printf("Enter an integer: ");
scanf( "%d", &num );
printf("You entered: %dn", num );
printf("You entered as a string: %sn", num );
printf("You entered as a hexadecimal integer: %xn", num );
return 0;
}
In this example, we use format specifiers to read an integer input, a string input, and a hexadecimal integer input.
Error Handling
scanf can return an error if the input cannot be parsed. Here are some common error codes:
EOF: end of fileEINVAL: invalid argumentEINVAL: invalid formatERANGE: out of range
Here’s an example of how to handle errors:
#include <stdio.h>
int main() {
int num;
printf("Enter an integer: ");
if (scanf( "%d", &num ) != 1) {
printf("Error: invalid inputn");
return 1;
}
if (num < 0) {
printf("Error: negative numbern");
return 1;
}
printf("You entered: %dn", num );
return 0;
}
In this example, we use a switch statement to handle errors.
Example of scanf with error handling
Here’s an example of how to use scanf with error handling:
#include <stdio.h>
int main() {
int num;
printf("Enter an integer: ");
if (scanf( "%d", &num ) != 1) {
printf("Error: invalid inputn");
return 1;
}
if (num < 0) {
printf("Error: negative numbern");
return 1;
}
printf("You entered: %dn", num );
return 0;
}
In this example, we use a switch statement to handle errors.
Conclusion
Reading integer input from the user is a fundamental operation in C programming. scanf is a versatile function that can read different types of input, including integers, floats, strings, and more. By understanding how to use scanf with format specifiers and error handling, you can write efficient and robust C programs.
Table of Contents
- Introduction
- Basic Syntax of scanf
- Example of scanf
- Format Specifiers
- Error Handling
- Example of scanf with error handling
- Conclusion
