C++Builder What Is The sscanf Function In C++ And How Can I Use It?

FireWind

Свой
Регистрация
2 Дек 2005
Сообщения
1,957
Реакции
1,199
Credits
4,009
What Is The sscanf Function In C++ And How Can I Use It?
By Yilmaz Yoru December 1, 2021

What is sscanf function? How can I use sscanf in C++? Where can I find format specifiers for the sccanf function? What is the syntax of sscanf ? What is a simple Example to sscanf function in C++? Is There Full Examples to sscanf Function in C++? Let’s answer these questions.

What is the sscanf function?​

Для просмотра ссылки Войди или Зарегистрируйся function is an old C function (since C95) that reads data from a variety of sources, scans and formats input from a string. In other terms, sscanf interprets it according to format and stores the results into given locations. We can use sscanf in C++. sscanf function reads the data from null-terminated character string buffer and defined in header <stdio.h> can be used in C++ applications. The end of the string is same as the end-of-file condition for fscanf. Generally sscanf function is good to convert parameters listed in a single string or a string from a data file, thuss it can be very useful to obtain values from a string data, and we can save these values to a modern database.

What is the syntax of the sscanf function?​

Syntax of sscanf (Since C99):
C++:
int sscanf( const char *restrict buffer, const char *restrict format, ... );

What does the sscanf function do?​

The sscanf function scans a series of input fields, one character at a time, reading from a string. Then each field is formatted according to a format specifier passed to sscanf in the format string pointed to by format. Finally, sscanf stores the Для просмотра ссылки Войди или Зарегистрируйся at an address passed to it as an argument following format. There must be the same number of Для просмотра ссылки Войди или Зарегистрируйся and addresses as there are input fields. Format specifiers can be found Для просмотра ссылки Войди или Зарегистрируйся. For example, we can use “%d” or “%i” to read (scan) decimal or integer numbers, we can use “%f” to read floating-point numbers.

sscanf might stop scanning a particular field before it reaches the normal end-of-field (whitespace) character, or it might terminate entirely, for a number of reasons. See Для просмотра ссылки Войди или Зарегистрируйся for a discussion of possible causes.

On success, sscanf returns the number of input fields successfully scanned, converted, and stored; the return value does not include scanned fields that were not stored.

If sscanf attempts to read at end-of-string, it returns EOF. On error (If no fields were stored), it returns 0.

Note: sscanf considers the “s” specifier to refer to a two-byte character (wchar_t), rather than requiring the capital “s” or “ls” to indicate that a pointer to a two-byte character is being passed.

What is a simple example of the sscanf function in C++?​

Here is an example of sscanf,
C++:
std::string str = "23 45";
int x, y;
sscanf( str.c_str(), "%d %d", &x, &y);

Are there any full examples of using the sscanf function in C++?​

We can use sscanf in different input formats. For example if there is a string with two numbers separated by a space, we can read them as below,
C++:
#include <iostream>
 
int main()
{
 std::string str = "23 45";
 int x, y;
 
 sscanf( str.c_str(), "%d %d", &x, &y);
 std::cout << x << "," << y;
 
 getchar();
 return 0;
}
If there is a string with two numbers separated by a coma, we can read them as below,
C++:
#include <iostream>
 
int main()
{
 std::string str = "23, 45";
 int x, y;
 
 sscanf( str.c_str(), "%d,%d", &x, &y);
 std::cout << x << "," << y;
 
 getchar();
 return 0;
}
If there is a string with two floating numbers separated by a space, we can read them as below,
C++:
#include <iostream>
 
int main()
{
 std::string str = "23.1 45.8";
 double x, y;
 
 sscanf( str.c_str(), "%lf %lf", &x, &y);
 std::cout << x << "," << y;
 
 getchar();
 return 0;
}
In C programming, there are scanf, fscanf, sscanf, scanf_s, fscanf_s, sscanf_s functions for the different requirements, can be used in C++.

Note that in C++ we can use std::cin to read values from an input. In a modern way, we can convert string to std::stringstream then we can get parameters that we need.