博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
小甲鱼笔记C语言入门(二)——数据的输入与输出,putchar(),.getchar,printf,scanf,顺序结构
阅读量:3506 次
发布时间:2019-05-20

本文共 3728 字,大约阅读时间需要 12 分钟。

一、 C的基本语句

C程序的执行部分是由语句组成的。程序的功能也是由执行语句实现的

C语句课分为以下五类:

  • 表达式语句:由表达式加上分号“;“,其一般形式为:表达式;

  • 函数调用语句:由函数名、实际参数加上分号组成。

  • 控制语句:用于控制程序流程,以实现程序的各种结构方法。C语言有九种控制语句。

    • 条件语句:if语句,switch语句
    • 循环语句:do while、while、for语句
    • 转向语句:break语句,goto语句,continue语句,return语句
    • 复合语句:把多个语句用花括号{}组成的一个语句称为复合语句
  • 空语句:只有分号;组成的语句称为空语句。

空语句案例,该语句功能为,只要从键盘输入的字符不是回车则重新输入

while (getchar()!='\n')	{
; }}

二、 赋值语句

赋值语句是由赋值表达式再加上分号构成的表达式语句。

其一般形式为:变量=表达式;

赋值语句的功能和特点都与赋值表达式相同。它是程序中用最多的语句之一。

在赋值语句的使用中票要注意以下几点:

1.由于在赋值符“=”右边的表达式也可以又是一个赋值表的式,国此,下述形式:

变量=(变量=表达式);是成立的,从而形成嵌套的情形,其展开之后的一般形式为:变量-变量-…=表达式;

2.注意在变量说明中给变量赋初值和赋值语句的区别

结果变量赋初直是变量说明的一部分,赋初值后的变量与其后的其它同类变量之间仍必用逗号间隔,而赋值语句则必用分号结尾。

例如: int a=5, b , c

3. 在变量说明中,不允许连续结多个变量赋值

如下述说明是错误的:

int a = b =c=5必写为 int a=5,b-5,c=5;

而赋值语句许连续赋值。

4. 注意赋值表达式和赋值语句的区别

赋值表达式是一种表达式,它可以出现在任何允许表达式出现的地方,而赋值语句则不能。

三、 数据的输入输出的概念

  • 所谓输入输出是以计算机为主体而言的。

  • 在 C 语言中,所有的数据输入/输出都是库函数完成的。此都是函数语句。

  • 在使用 C 语言库函数时,要用预编译令# include 将有关“头文件”包括到源文件中。

    使用标准输入输出库函数时要用到“ stdio . h ”文件,因比源文件开头应有以下预编译命令:
    include < stdio . h ># include stdio . h " stdio 是 standard input & outupt 的意思

  • 考虑到printf和scanf函数使用频繁,系统允许在使用这两个函数时可不加

1. putchar函数(字符输出函数)

putchar函数是字符输出函数,其功能是在显示器上输出单个字符

其一般形式为:

putchar(字符变量)

使用本函数前必须要用文件包含命令:#include <stdio.h>

2. getchar函数(键盘输入函数)

getchar函数的功能是从键盘上输入一个字符

其一般形式为:

getchar();

通常把输入的字符赋予一个字符变量,构成赋值语句。如

char c;c=getchar();

3. printf函数(格式输出函数)

print 函数称为格式输出函数,其关键字最未一个字母f 即为“格式”( format )之意。

其功能是按用户指定的格式,把指定的数据显示到显示器屏幕上

3.1. printf 函数调用的一般形式

printf 函数是一个标准库函数,它的函数原型在头文件“ stdio . h ”中

作为一个特例,不要求在用 printf 函数之前包含 stdio . h 文件

print 函数调用的一般形式为:

printf (“格式控制字符串”,输出表列)

3.2. 格式控制输出格式

格式控制字符串用于指定输出格式。

格式控制串可由格式字符串和非格式字符串两种组成。

格式字符串是以%开头的字符串。在%后面跟有各种格式字符,以说明输出数据的类型,形式、长度、小数等

格式符 含义
%d 表示按十进制整型输出
%ld 表示按十进制长整型输出
%c 表示按字符型输出等
%u 表示以无正负号十进制出书
%s 表示以字符串形式输出
%e 表示以浮点型指数形式输出
%o 表示按八进制整型输出

3.3输出最小宽度

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

3.4 精度

精度格式以".”开头,后跟十制整数。本项的意义是:如果输出数字,则表示小数的位数;如果输出的是字符,则表示输出字符的个数;若实际位数大于所定义的精度数,则截去超过的部分。

3.5 长度

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

3.6一个printf和多个printf

void main() {
int i = 8; printf("%d\n%d\n%d\n%d\n%d\n%d\n%d",i,++i,--i,++i,i--,-i++,-i--);}

输出结果:88888-7-8

void main() {
int i = 8; printf("%d\n",++i); printf("%d\n", --i); printf("%d\n", i++); printf("%d\n", i--); printf("%d\n", -i++); printf("%d\n", -i--);}

输出结果:9 8 8 9 -8 -9

因为程序执行是以“;“结尾才进行一个赋值。所以第一个语句只比较一条语句,也就是自有向左赋值。从最后一个-i—开始

4. scanf函数(格式输入函数)

scant 函数称为格式输入函数,即用户指定的格式从键盘上数琚输入到定的变量之中。

4.1. scanf 函数的一般形式 scanf 函数

  • scanf是一个标准库函数,它的函数原型在头文件“ stdio ”中,与 printf 函,C 语言也允许在使用 scant 函数之之前不必包含 stdio . h 文件。

  • scanf 函数的一般形式为:

scanf (“格式制字符串”,地址表列)
  • 其中,格式制字符串的作用与 printf 函数相同,但不能显示非格式字符串,也就是不能显示提示字串。地地表列中结出各变量的地址。地址是由地址运算符”&”后跟变量名组成的

4.2.&a,&b

分别表示变量a和变量b的地址

这个地址就是编译系统在内存中给 a . b 变量分配的地址。

在 C 语言中.使用了地址这个概念,变量的值和变量的地址这两个不同的概念区别开来。

  • 变量的地址是 编译系统分配的,用户不必关心本身的地址是多少。

  • 变量的地址和变量值的关系如下:

    在赋值表达式中给变量赋值,

如: a =567则, a 为变量名,567是变量的值,& a 是变量 a 的地址

赋值号左边是变量名,不能写地址,而 scanf 函数在本质上也是给变量赋直,但要求写变量的地址,

如& a 。&是一个取地址运算符,& a 是一个表达式,其功能是求变量的地址

void main() {
int a, b, c; printf("input a b c\n"); scanf("%d%d%d",&a,&b,&c); printf("%d,%d,%d",a,b,c);}

4.3 “ * “符

用以表示该输入项,读入后不赋予相应的变量,即跳过该输入值

scanf(“%d%*d%d”&a,&b);当输入为:1 2 3 时,把1赋予a,2被跳过,3赋予b

4.4宽度

用十进制整数指定输入的宽度(即字符)

scanf(“%5d”,&a);输入“12345678 时,只把12345赋予变量a,其余部分被截去

4.5长度

长度格式符为1和h,1表示输入长整型数据(如%1d)和双精度浮点数(如%1f)。

h表示输入短整型数据。

4.6注意点

  • scan 函数中没有精度控制

    如: scanf ("%5.2f".&a);是非法的。不能企图用此语句输入小数为2位的实数。

  • scanf 中要求结出变量地址,如给出变量名则会出错

如 scanf ("% d “, a );是非法的,应己改为 scanf (”% d ".& a );才是合法的。

  • 在输入多个数直数据时,若格式控制串中没有非格式字符作输入数据之间的间隔则可用空格,TAB或回车作间隔。

  • C 编译在碰到空格, TAB ,回车或非法数据(如对“% d "输入“ I 2A”时, A 即为非法数据)时即认为该数据结束。

  • 在输入字符数据时,若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符

scanf(“%c%c%c”,&a,&b&c)当输入 a b c 时,中间的空格’ ’均会存放进去

所以如果我们需要加空格,只需要在

scanf(“%c %c %c”,&a,&b&c)在每个%c之间加入空格即可,

由此可以引申。我们可以

scanf(“%c,%c,%c”,&a&b&c)去固定的让用户去输入必须每输入一个数字加一个逗号

转载地址:http://jtxmj.baihongyu.com/

你可能感兴趣的文章
[LeetCode javaScript] 824. 山羊拉丁文
查看>>
[LeetCode javaScript] 463. 岛屿的周长
查看>>
[LeetCode javaScript] 107. 二叉树的层次遍历 II
查看>>
[LeetCode javaScript] 637. 二叉树的层平均值
查看>>
[LeetCode javaScript] 1. 两数之和
查看>>
[LeetCode javaScript] 14. 最长公共前缀
查看>>
[LeetCode javaScript] 26. 删除排序数组中的重复项
查看>>
[LeetCode javaScript] 8. 字符串转换整数 (atoi)
查看>>
[LeetCode javaScript] 28. 实现strStr()
查看>>
cv2.error: OpenCV(3.4.2) c:\projects\opencv-python\opencv\modules\imgproc\src\color.hpp:25
查看>>
前端网页学习7(css背景属性)
查看>>
前端网页学习8(css三大特性:层叠性,继承性,优先级)
查看>>
前端网页学习9(css盒子)
查看>>
python学习8(列表)
查看>>
JavaScript学习(new1)
查看>>
http GET 和 POST 请求的优缺点、区别以及误区
查看>>
JVM的4种垃圾回收算法、垃圾回收机制
查看>>
什么是分布式事务
查看>>
常用的分布式事务解决方案
查看>>
设计模式:单例模式 (关于饿汉式和懒汉式)
查看>>