FreeBSD Manual Pages
std::gets(3) C++ Standard Libary std::gets(3) NAME std::gets - std::gets Synopsis Defined in header <cstdio> char* gets( char* str ); (deprecated in C++11) (removed in C++14) Reads stdin into given character string until a newline character is found or end-of-file occurs. Parameters str - character string to be written Return value str on success, a null pointer on failure. If the failure has been caused by end of file condition, addition- ally sets the eof indicator (see std::feof()) on stdin. If the failure has been caused by some other error, sets the error indicator (see std::ferror()) on stdin. Notes The std::gets() function does not perform bounds checking. There- fore, this function is extremely vulnerable to buffer-overflow attacks. It cannot be used safely (unless the program runs in an environment which restricts what can appear on stdin). For this reason, the function was deprecated in C++11 and removed alto- gether in C++14. std::fgets() may be used instead. Example // Run this code #include <array> #include <cstdio> #include <cstring> int main() { std::puts("Never use std::gets(). Use std::fgets() instead!"); std::array<char, 16> buf; std::printf("Enter a string:\n>"); if (std::fgets(buf.data(), buf.size(), stdin)) { const auto len = std::strlen(buf.data()); std::printf( "The input string:\n[%s] is %s and has the length %li characters.\n", buf.data(), len + 1 < buf.size() ? "not truncated" : "truncated", len ); } else if (std::feof(stdin)) { std::puts("Error: the end of stdin stream has been reached."); } else if (std::ferror(stdin)) { std::puts("I/O error when reading from stdin."); } else { std::puts("Unknown stdin error."); } } Possible output: Never use std::gets(). Use std::fgets() instead! Enter a string: >Living on Earth is expensive, but it does include a free trip around the Sun. The input string: [Living on Earth] is truncated and has the length 15 characters. See also scanf reads formatted input from stdin, a file stream or a buffer fscanf (function) sscanf fgets gets a character string from a file stream (function) fputs writes a character string to a file stream (function) C documentation for gets http://cppreference.com 2024.06.10 std::gets(3)
NAME | Synopsis | Parameters | Return value | Notes | Example | Possible output: | See also
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::gets&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>
