linux 中和终端交互的函数有很多,比如gets() scanf()等
gets() 函数从标准输入读入 直到读到 新行符 或 EOF 字符 之前,不会停止度读入文本。也就是:gets() 不检查边界。因此,当变量空间 小于 一行字符知串 时, 使用 gets() 会造成 溢出,程序出错。
scanf 就不同了他根据我们提供的format 来读取。
需要注意的是 sscanf(buf,"%s",&out) 中的%s 遇到空格就结束了 比如 buf=“test 1235”, 如果你用%s 则只能取得 “test” 字串。
这是就需要用到%[] 来匹配了。sscanf(buf,"%[^\n]",&out)