• scanf的一些技巧


    一、scanf和gets

    1.不同点:

      char string[50];

      scanf("%s",string); //当遇到回车,空格和tab键会自动在字符串后面添加'',但是不能接受回车,空格和tab键,他们仍会留在输入的缓冲区中。

      gets(string); //遇到回车认为输入结束,并用' '替代 ''.回车键不会留在输入缓冲区中

    2.相同点:

      字符串接受结束后自动加''。

    二、scanf("%c",&c) 与 scanf(" %c",&c)

      后者只是在%前多了个空格,似乎没有什么区别,但使用起来区别是很大的。scanf()作单字符输入时规定只接收一个字符,但它却把回车符也作为字符对待的。这就造成程序中只有一个输入字符的scanf()语句时,问题还不大,但如果后面还跟着第二个scanf()字符输入语句,这个scanf()就把前面输入的回车符当作输入字符了。这就在输入逻辑上造成了混乱,达不到人们预期的愿望。有了这个空格,因为scanf()是跳过空格读字符的,就回避了这个问题。实践证明,这个空格放在%c后面也不能达到目的。应当说,这也是比较巧妙的应用!

    三、scanf("%d",&n) 与 scanf("%d ",&n)

      这个是利用了上面二中的方法,如果程序scanf("%d",&n)之后要读char,会把读入n之后的空格读进ch,而scanf("%d ",&n)这里d后面多个空格,就相当于后面%c前多了个空格,不管是scanf("%c",&ch)还是ch=getchar(),都可以跳过那个回车。

  • 相关阅读:
    Javascript基础知识4
    JavaScript基础知识3
    JavaScript基本知识2
    JavaScript基本知识1
    BFC?来自CSS中的BFC
    创建【哆啦A梦】风格字体
    理解JavaScript函数
    我所了解的BFC
    jQuery
    html
  • 原文地址:https://www.cnblogs.com/flipped/p/5056762.html
Copyright © 2020-2023  润新知