Reading a String Using fgets in C programming
fgets in CReading a String Using fgets in C
The fgets function in C is used to read a string of characters from a file or standard input, such as the keyboard. It is particularly useful for handling user input because it can read an entire line of text, including spaces, until a newline character is encountered or the specified limit is reached.
Syntax
The syntax for fgets is as follows:
char *fgets(char *str, int n, FILE *stream);
Where:
stris a pointer to a character array where the input string will be stored.nis the maximum number of characters to read, including the null terminator.streamis the file pointer from which the input will be read. Usestdinfor standard input.
Example Code
#include <stdio.h>
int main() {
char buffer[100]; // Buffer to store the input
printf("Enter a string: ");
fgets(buffer, sizeof(buffer), stdin);
printf("You entered: %s", buffer);
return 0;
}
In this example:
char buffer[100];declares a character array of size 100 to store the input string.printf("Enter a string: ");prompts the user to enter a string.fgets(buffer, sizeof(buffer), stdin);reads up to 99 characters from standard input and stores them inbuffer. It automatically appends a null terminator.printf("You entered: %s", buffer);prints the string stored inbuffer.
Key Points
- Buffer Size: Ensure the buffer size is large enough to accommodate the input string and the null terminator.
- Newline Character:
fgetsincludes the newline character in the buffer if it fits within the specified limit. - Error Handling: Always check for potential errors, such as reaching the end of file or an empty input.
Note:
fgets is safer than gets because it prevents buffer overflow by specifying the maximum number of characters to read.
Comments
Post a Comment