gets()函数读取整行输入,直至遇到换行符,然后丢弃换行符,储存其余字符,并在这些字符的末尾添加一个空字符使其成为一个C字符串。它经常和puts()函数配对使用,该函数用于显示字符串,并在末尾添加换行符。
示例
//Visual Studio中加上这句才可以使用scanf() //否则只能使用scanf_s() #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdbool.h> #define STLEN 81 //argc: 参数个数 argv[]: 参数数组 int main(int argc, char *argv[]) { char words[STLEN]; puts("Enter a string, please."); /*如果输入的字符串超过分配给words的存储空间, 会导致缓冲区溢出(buffer overflow),即多余的字符超出了指定 的目标空间。如果这些多余的字符只是占用了尚未使用的内存, 就不会立即出现问题;如果它们擦写掉程序中的其他数据,会导致 程序异常中止;或者还有其他情况。 因为gets()函数的不安全性,在C11标准中废除了gets(),但很多编译 器为了兼容以前的程序依然提供支持。 */ gets(words); //典型用法 printf("Your string twice:\n"); printf("%s\n", words); puts(words); puts("Done."); system("pause"); return 0; }