scanf:

  格式字符串的一般形式:%[*][输入数据宽度][长度] 类型  (其中有方括号[] 的项为任选项。)

各项意义:

  1) 类型:表示输入数据的类型,其格式符和意义如下表所示。

        格式字符 意义
              d 输入十进制整数
              o 输入八进制整数
              x 输入十六进制整数
              u 输入无符号十进制整数
             f,e 输入实型数(用小数形式或指数形式)
              c 输入单个字符
              s 输入字符串

  2) “ *”符: 用以表示该输入项读入后不赋予相应的变量,即跳过该输入值。

    例:scanf("%d %*d %d",&a,&b);
    输入: 1 2 3,    则a=1,2被跳过,b=3。
  3) 宽度: 用十进制整数指定输入的宽度(即字符数) 。
    例1:scanf("%5d",&a);
    输入: 12345678  则a=12345,其余部分被截去。
    例2:scanf("%4d%4d",&a,&b);
    输入: 12345678  则a=1234,b=5678。
  4) 长度: 长度格式符为 l 和 h, l 表示输入长整型数据(如%ld) 和双精度浮点数(如%lf) 。 h 表示输入短整型数据。

printf:
  格式字符串的一般形式:[标志][输出最小宽度][. 精度][长度] 类型   (其中方括号[] 中的项为可选项。)

各项意义:
  1) 类型:类型字符用以表示输出数据的类型,其格式符和意义如下表所示:

         格式字符        意义
               d 以十进制形式输出带符号整数(正数不输出符号)
               o 以八进制形式输出无符号整数(不输出前缀 0)
             x,X 以十六进制形式输出无符号整数(不输出前缀 Ox)
               u 以十进制形式输出无符号整数
               f 以小数形式输出单、双精度实数
             e,E 以指数形式输出单、双精度实数
             g,G 以%f 或%e 中较短的输出宽度输出单、双精度实数
              c 输出单个字符
              s 输出字符串

  2) 标志:标志字符为-、 +、 #、空格四种,其意义下表所示:

          标        志       意义
               - 结果左对齐,右边填空格
               + 输出符号(正号或负号)
            空格 输出值为正时冠以空格,为负时冠以负号
              #

对 c,s,d,u 类无影响;对 o 类, 在输出时加前缀 o;对 x 类, 在输出时加前缀 0x;

对 e,g,f 类当结果有小数时才给出小数点

  3) 输出最小宽度:

    用十进制整数来表示输出的最少位数。若实际位数多于定义的宽度,则按实际位数输出,若实际位数少于定义的宽度则补以空格或 0。
  4) 精度:

     精度格式符以“. ”开头,后跟十进制整数。

    本项的意义是:如果输出数字,则表示小数的位数;如果输出的是字符,则表示输出字符的个数;若实际位数大于所定义的精度数,则截去超过的部分。
  5) 长度:

    长度格式符为 h,l 两种, h 表示按短整型量输出, l 表示按长整型量输出。

注意

  1. 在输入多个数值数据时,若格式控制串中没有非格式字符作输入数据之间的间隔则可用空格, TAB或回车作间隔。
  2. C 编译在碰到空格,TAB,回车或非法数据(如对“%d”输入“12A”时, A 即为非法数据)时即认为该数据结束。
  3. 在输入字符数据时,若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符。
    例:scanf("%c%c%c",&a,&b,&c);
    输入:d e f    则a='d', b=' ', c='e'。
    输入:def       则a='d', b='e', c='f'。
  4. 如果格式控制串中有非格式字符则输入时也要输入该非格式字符。只有“%”开头的部分才会被后面的值替换掉。
    例1:scanf("%d,%d,%d",&a,&b,&c);  (其中用非格式符“ , ”作间隔符)

    输入应为:5,6,7
    例2:scanf("a=%d,b=%d,c=%d",&a,&b,&c);

  5. 如输入的数据与输出的类型不一致时,虽然编译能够通过,但结果将不正确。

    double型输入输出形式如下:

    double a;

    scanf("%lf",&a);

    printf("%f",a);

    注:在输入double类型时需要使用%lf才能正常得到a值,而在输出double类型时可以使用%f,因为在执行printf("%f",a)时编译器将自动把float类型的参数转化为double类型

  6. 整数值用%d输出,实数用%f输出  8.0和5.0被看做为实数、浮点数
  7. printf中使用“\n”表示换行
  8. 输出25,printf("%d",25);
  9. 输出025,printf("%03d",25);

转载于:https://www.cnblogs.com/xuwanwei/p/10708339.html

c语言变量及输入输出相关推荐

  1. ​Swift语言中为外部参数设置默认值可变参数常量参数变量参数输入输出参数

    ​Swift语言中为外部参数设置默认值可变参数常量参数变量参数输入输出参数 7.4.4  为外部参数设置默认值 开发者也可以对外部参数设置默认值.这时,调用的时候,也可以省略参数传递本文选自Swift ...

  2. C语言笔记含源码(变量、输入输出、分支、循环、函数、数组、指针、字符串、结构体)小总结

    文章目录 一.变量与输入输出 二.分支语句 三.循环 四.函数 五.数组 六.指针 七.字符串 八.结构体 一.变量与输入输出 定义变量需要:类型.变量名.变量值(可有可无) #include < ...

  3. c语言if.while.for,C语言操纵语句输入输出ifwhilefor.ppt

    C语言操纵语句输入输出ifwhilefor 上次课核心内容回顾 什么叫变量? 为何要使用变量? 变量有哪些基本类型?特点? 为何要分类型? 如何定义变量?如何赋值? 输入.输出语句格式 C语言程序结构 ...

  4. c语言-常见的输入输出符号

    c语言-常见的输入输出符号 一.关于%d的输入输出 (1)%5d就是将数字的宽度变为5,采用右对齐的方式输出,若数据不到5位,就用空格补完,比如输出32, [前面有3个空格]32. (2)%05d就是 ...

  5. 汇编语言定义变量c,汇编c语言变量

    广告 Apple iPad,AirPods Pro,Bose耳机,机械键盘,健身环等着您 由于c ++支持重载,因此可以使用相同的函数名称但不同的参数类型定义函数. 在编译期间,编译器根据函数的参数类 ...

  6. 学长教你学C-day5-C语言变量与数据类型

      小韩是一个学习比较刻苦认真的学生,虽然老师上课进度刚讲到输入输出,但是小韩已经自学到C语言指针部分的内容了.但是进度太快的弊端就是有些东西很难消化吸收,这不就遇到了问题,来请教小刘:"学 ...

  7. python语言变量命名规则有什-以下选项中,符合Python语言变量命名规则的是_学小易找答案...

    [填空题]与文件系统相比,数据库系统的数据冗余度___________,数据共享性___________. [填空题]在数据库体系结构中,两级数据映象分别是指___________之间的数据映象与__ ...

  8. 存储过程debug值not a variable_C语言变量的存储类别

    在程序中经常会使用到变量,在C程序中可以选择变量的不同存储形式,其存储类别分为静态存储和动态存储.可以通过存储类别修饰符来告诉编译器要处理什么样的类型变量,具体主要有自动(auto).静态(stati ...

  9. C语言中的关键字,变量的定义,变量的命名规则,交换两个变量的值,驼峰命名法【 C语言变量名命名法则】

    C语言结构 C语言中的关键字 变量 变量的定义 变量的命名规则 交换两个变量的值 驼峰命名法 C语言结构 上图中我们可以看到最外层是程序,内部是所有的构成,我们从最里面开始说明. 当我们用计算机语言来 ...

最新文章

  1. Unet实现图像分割(一)
  2. windows 10 家庭版 无法打开 gpedit.msc 解决方法
  3. 摘:常用函数(包括:宽字符函数、普通C函数 )
  4. P5404-[CTS2019]重复【KMP,dp】
  5. bzoj1593 [Usaco2008 Feb]Hotel 旅馆(线段树)
  6. Dubbo管理控制台dubbo-admin搭建
  7. 微软Windows 11正式发布!(附安装教程)
  8. Ubuntu下解压缩文件
  9. python mysql批量insert数据_使用python往mysql批量插入数据时,报错not all arguments converted...
  10. SQL server 2008配置与用户名登录
  11. Mybatis注解: SQL语句映射@Select @Insert @Updata @Delete @SelectKey
  12. WIFI的下一代:LIFI 可见光无线通信代替微波通信
  13. 如何利用无线远传模块实现工业无线控制系统?
  14. 数据库中COMMENT关键字的使用
  15. OCR文字识别工具准确获取图片文字
  16. JS:利用函数,求任意三个数最大值,任意两个数的任意运算结果,判断任意数值是否为素数。
  17. python画建筑物_函数绘制带有门窗的建筑
  18. QVegas-一个升级版的TCP Vegas拥塞算法
  19. 阿里巴巴 CEO 张勇:双 11 十周年,已成为商业领域的奥林匹克
  20. 【MATLAB图像处理】计算机视觉基础MATLAB实现读取磁盘中的图像,实现图像转化显示、像素点8-邻域标记、显示两个像素点的像素变化情况

热门文章

  1. 配置React的Babel 6和Webpack 2环境
  2. Android Studio简单设置
  3. Linux中find常见用法示例
  4. oracle sql profile
  5. Hibernate中sessoin的flush学习笔记
  6. 巧用MySQL InnoDB引擎锁机制解决死锁问题
  7. SSH远程管理(用户登录控制及密码验证)
  8. All in one: pentest under metasploit
  9. DevOps和容器:本地or云端,如何选择?
  10. 【微信小程序】:实现轮播图3秒滚动