zoukankan      html  css  js  c++  java
  • 关于scanf的几种处理方法


    字符输入中,赋值顺序和缓存的联系

    scanf是从标准输入缓冲区中读取输入的数据,假设连续输入两个%c格式的字符。而中间又要涉及回车,那么第二个字符将被赋予回车。

       解决的方法:

           1清空输入缓冲区

           第一个scanf后增加语句:fflush(stdin); //C语言清空输入缓冲区函数

           2格式控制中增加空格

           将第二个scanf改为:scanf(" %c",&ch2);//%号前面加一个空格

    scanf格式输入时要求输入格式与格式控制符中的全然一样(如:scanf("abcd%c",&ch);输入时必须输入abcde,ch得到的值为e)空格能够抵消前面输入的回车符。

    3直接用ch=getche()吸收回车

    4当输入完整数或字符时。后面还须要输入字符时,为了避免输入的字符变成回车符,能够在输入字符前多加一条scanf语句来吃掉前面的回车符。

    此时用来吃掉回车符的scanf输入能够用%c方式,也能够用%d方式。当用%c方式来吃掉回车符时,回车符被读进了char类型变量中,当用%d方式来吃掉回车符时,回车符并没有被送进int类型变量中。而是在异常的字符输入后,被自己主动清除了。


  • 相关阅读:
    C# fields Study
    单词1
    C# Base Class Study
    C# Type Parameters Study
    C#3.0学习系列类的成员
    美国式教育
    单词2
    项目添加Struts2支持,并修改默认后缀
    Java多线程的学习和应用
    SQL PIVOT
  • 原文地址:https://www.cnblogs.com/yxwkf/p/5277976.html
Copyright © 2011-2022 走看看