Home >Common Problem >What is the difference between gets and scanf
gets and scanf can be used to read strings in C language, but they are actually very different. In this article, we will take a look at gets and scanf What is the difference between scanf.
The difference between gets and scanf
1. gets can receive spaces; while scanf will consider the input to be over when it encounters spaces, carriage returns, and the Tab key, so it cannot receive them. Space.
For example: if the input is "hello world", the running result of the above program is "hello world". If you use scanf, you can only output hello
2. Scanf handles the carriage return character at the end: keep the carriage return character in the cache. gets's processing of the carriage return character at the end: receive the carriage return, but replace the carriage return with \0.
3. The return value of gets is char* type. When the reading is successful, the input string will be returned. Pointer address, returns NULL when an error occurs; scanf returns an int type, returns the actual number of successfully assigned variables, and returns EOF when it encounters the end-of-file mark.
4. The gets function is only used to read strings; scanf is a formatted output function that can read variable values of any basic type of C language, not just strings (char*) type.
The above is the detailed content of What is the difference between gets and scanf. For more information, please follow other related articles on the PHP Chinese website!