根据beginning linux programing 4th edtion发现C语言scanf()函数还有这样的用法:
char str[80]; scanf("%[^\n]",str);
直到读取到回车键才停止读取,而不是像通常的scanf(“%s”,str);那样读到空白字符就停止读取。换言之上述方法可以读取一个句子而不是通常的只能读取一个单词。
不过缺点也是显而易见的,和gets相仿,这样可能导致溢出漏洞。正如,历史上对scanf系列函数的评价并不高。
#include int main(void) { char str[80]; puts("Please enter some word, end with the key ENTER"); scanf("%[^\n]", str); printf("What you input is %s", str); return 0; }