乐趣区

关于c:C程序设计-03-输入输出

一、C 语句

1. C 语句分类

C 语句分为以下 5 类:

  1. 管制语句

    • 条件语句:if()...else...
    • 循环语句:for()...
    • 循环语句:while()...
    • 循环语句:do...while()
    • 完结本次循环语句:continue
    • 终止执行 switch 或循环语句:break
    • 多分支抉择语句:switch
    • 从函数返回语句:return
    • 转向语句(结构化程序中根本不必):goto
  2. 函数调用语句
  3. 表达式语句:如赋值表达式。
  4. 空语句:只有一个分号,作为流程的转折点或循环语句的循环体。
  5. 复合语句:用 {} 把一些语句括起来。

2. 赋值语句

复合赋值运算

a += 3;  // a = a+3;
x *= y+8;  // x = x*(y+8);

应用复合赋值运算符,一是能够简化精炼程序,二是能够进步编译效率,生成品质较高的指标代码。

赋值过程中的类型转换

  • 浮点型赋值给整型:舍弃小数局部。
  • 整型赋值给单、双精度浮点型:数值不变。
  • 双精度浮点型赋值给单精度浮点型:只取 6~7 位有效数字,当双精度数值大小超过单精度数值范畴时会出错。
  • 占字节多的整型赋值给占字节少的整型或字符型:只会将其低字节局部赋值给新变量,产生失真。失真不属于语法错误,编译系统不会提醒,要留神防止!!!

赋值语句与赋值表达式

$$
赋值语句 = 赋值表达式 + 分号 \ ;
$$

赋值表达式时 C 语言的特点之一,区别于其余语言。一个表达式能够蕴含在其余表达式中,赋值表达式也不例外:

if((b=a)>0) c=b;

// 相当于先把 a 赋值给 b,再判断 b 是否大于 0

二、数据的输入输出

1. 输入输出基本概念

  • 所谓输入输出是以计算机的主机为主体而言的。
  • C 语言自身不提供输入输出函数,这样做能够使编译系统简化、通用性强、可移植性好。C 语言函数库提供一批规范的输入输出函数,以规范的输入输出设施 (个别为终端设备) 为输入输出对象:

    • putchar输入字符
    • getchar输出字符
    • printf格局输入
    • scanf格局输出
    • puts输入字符串
    • gets输出字符串
  • 要在程序文件结尾用预处理指令 # include 引入无关头文件。

# include指令还有一种模式:

#include "studio.h"

这两种预处理指令的区别是:

  • 应用尖括号时,编译系统从寄存 C 编译系统的子目录中去找要蕴含的文件,称为 规范形式
  • 应用双引号时,编译系统当初用户的当前目录中寻找要蕴含的文件,若找不到,再按规范形式找。双引号内能够是文件的具体门路。
  • 为提高效率,应用零碎库函数时尽量应用规范形式。

2. printf输出函数

printf是格式化输入函数,用来向终端 (或零碎隐含指定的输出设备) 输入若干个任意类型的数据。其个别格局为:

printf(格局管制, 输出表列);

输出表列 是须要输入的数据,能够是常量、变量或表达式。
格局管制是用双引号括起来的字符串,称为格局管制字符串或格局字符串,包含两局部信息:

  1. 格局申明:由 % 和格局字符组成,作用是将输入的数据转换为指定格局。
  2. 一般字符:须要在输入时原样输入的字符。

格局字符包含:

格局字符 含意
d 输入有符号的十进制数
ld 输入长整型
lld 输入双长整型
c 输入一个字符
s 输入字符串
f 输入实数(单精度、双精度、长双精度)
eE 以指数模式输入实数
u 输入无符号 (unsigned) 型十进制数
gG fe格局中较短的一个格局输入浮点数
o 按八进制模式输入整数
xX 按十六进制模式输入整数

局部格局字符应用时能够在格局申明中指定输入数据的域宽,即所占的列数。原输入内容长度小于域宽时,默认在左侧加空格。如:

  • %5d输入数据占 5 列。
  • %m.nf输入数据占 m 列,其中小数为 n 列。原输入数据过长时采取四舍五入的办法解决。党 n 为 0 时,不输入小数和小数点。
  • %-m.nf%m.nf 作用类似,但数据长度小于 m 时,数据向左靠,右端补空格。

尽管输入数据的域宽能够管制,但要留神数据的有效性。float型数据只能保障 6 位有效数字,double为 15 位。并不是能输入的数据都是准确的。

如果像输入%,应该在格局控制字符窜中应用%%

3. scanf输入函数

scanf的个别格局为:

scanf(格局管制, 地址表列);

scanf函数的格局管制与 printf 函数雷同,以 % 开始,以格局字符完结,可插入附加字符。

须要留神的是,scanf函数中,格局管制前面的是变量地址,而不是变量名:

scanf("%d", a);  // 谬误
scanf("%d", &a);  // 正确

4. 字符输入输出函数

putchar的作用是输入一个字符。putchar(c)中的 c 能够是字符常量、字符变量、整型常量、整型变量 (其值在 ASCII 代码范畴内) 或转义字符。

getchar能够输出一个字符,失去的字符能够赋值给一个字符变量或整型变量,也能够间接作为表达式的一部分。

a = getchar();
putchar(getchar());

Reference:

谭浩强《C 程序设计(第五版)》

退出移动版