zoukankan      html  css  js  c++  java
  • scanf输入与getchar的比较

    使用scanf输入时应注意的问题

    1. scanf("%c%c%c",&c1,&c2,&c3);   在执行此函数时应该连续输入三个字符,中间不要有空格。如果有空格,就不对了,      如:a b c 第1个字符‘a’送给c1,第2个字符是空格符' ',送给c2,第3个字符'b'送给c3

    提示输入数值时,在两个数值之间需要插入空格(或其他分隔符),以使系统能区分两个数值

          在连续输入字符时。在两个字符之间不要插入空格或其他分隔符(除非在scanf函数中的格式字符串中有普通字符,这时在输入数据时要在原位置插入这些字符),系统能区分两个字符

    2. 在输入数值数据时,如输入空格、回车、Tab键或遇非法字符(不属于数值的字符),认为该数据结束。如

       scanf("%d%c%f",&a,&b,&c);

    若输入1234e123o.26

    第一个数据对应%d格式,在输入1234之后遇到字符'e',因此系统认为数值12345后没有数据了,第1个数据应到此结束,则把1234送给a,把'e'送给b。如果由于疏忽把1230.26错打成123o.26,由于123后面出现字母o,就认为数值数据到此结束,将123送给变量c,后面的几个字符没有被读入。

    3.scanf("%[^ ]",&a);

    表示读入一行字符串。
    ^表示"非",[^ ]表示读入换行字符就结束读入。

    4. *在scanf中的用法和scanf的返回值的用法两点。

    https://www.dotcpp.com/wp/786.html

    使用getchar输入单个字符,而非一个字符串。

    getchar函数,是C语言标准库中的函数,在头文件stdio中,可以接受用户输入的一个字符,回车结束,明文显示。声明和示例如下:

    注意:第一行是我输入的,第二行是printf输出的!

     gets(字符数组)

     puts(字符数组)

  • 相关阅读:
    Android 按键消息处理Android 按键消息处理
    objcopy
    SQLite多线程读写实践及常见问题总结
    android动画坐标定义
    Android动画效果translate、scale、alpha、rotate
    Android公共库(缓存 下拉ListView 下载管理Pro 静默安装 root运行 Java公共类)
    Flatten Binary Tree to Linked List
    Distinct Subsequences
    Populating Next Right Pointers in Each Node II
    Populating Next Right Pointers in Each Node
  • 原文地址:https://www.cnblogs.com/spore/p/10988768.html
Copyright © 2011-2022 走看看