消息关闭
    暂无新消息!
请问scanf("%s",a)  时碰到哪些字符会提前结束呢?
我从网上找的答案是回车、空格、制表、空字符会结束输入
我的目的是从命令行中输入一个二进制数据来测试不安全的LIBC库(使用perl -e 或者 python -c重定向流到程序)
请问gets() fscanf() scanf() sscanf()会遇到哪些字符时会提前结束呢?

1个回答

︿ 2
gets是遇到回车才会结束,中间可以有空格,tab等字符;
scanf遇到回车结束,因为标准输入也是行缓冲,遇到回车就会把输入缓存里的数据刷到内存了。但是scanf输入时,刷到内存里的数据与gets不一样,若scanf遇到空格,会将空格之前的数据赋值给变量;