C Primer Plus里没有提及的C语言scanf()函数用法

根据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;
}

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>