开发者社区> 问答> 正文

scanf函数使用时需要注意什么?

scanf函数使用时需要注意什么?

展开
收起
LLLA 2022-03-29 15:03:09 377 0
1 条回答
写回答
取消 提交回答
  • 1.输入的空白字符在进行数据转换时一般会被忽略。 2.以“*”开头的控制符表示对应位置上的输入数据将被忽略。这意味着,这个数据不会被保存,因此不需要使用一个变量来接收它。 3.使用%s控制符来扫描字符串时要小心,它会跳过起始的空白字符,在字符串里出现的第一个空白字符处停下来,所以最好用它来读取单词而不是一般意义上的字符串。此外,如果没有使用字段宽度限定符,它能够读取的字符串的长度是没有限制的,所以接收字符串必须有足够的空间来容纳输入流中可能的最长字符串。较好的选择是使用一个字段限定符,或者结合使用fgets和sscanf从输入读入一行数据,再对它进行扫描。这样可以避免可能被恶意用户利用的缓冲区溢出。 4.使用%[]控制符读取由一个字符集合中的字符构成的字符串。格式字符串%[A-Z]将读取一个由大写字母构成的字符串。如果字符串中第一个字符是,就表示将读取一个由不属于该字符集合中的字符构成的字符串。因此,读取一个其中带空格的字符串,并且在遇到第一个逗号时停止,可以用%[,]。

    2022-03-29 15:03:38
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载