c语言从标准输出读数据,C语言学习:数据的输入输出

前言

(1)

数据的输入输出是相对于计算机来讲的。从计算机向输出设备输出数据叫输出,从输入设备向计算机输入数据

叫做输入。

(2)

C语言本身不提供输入输出语句。输入和输出操作是由C标准函数库。

(3)

C语言中提供的标准输入输出库:

#include < stdio.h >

#include "stdio.h"

用< >这个时候,编译系统从存放C编译系统的子目录中去寻找所要包含的文件。称为:标准方式

用""方式,编译系统现在用户的当前目录中寻找,如果找不到,再通过标准方式寻找。

这个里面包含了putchar(“输出字符”)、getchar(输入字符)、printf(格式输出)、scanf(格式输入)、

puts(输出字符串)、gets(输入字符串)、

使用Printf函数输出数据

称为:格式输入输出函数,所谓的格式,就是程序员必须指定输入输出数据的格式。

(1)

一般格式:

printf(格式控制,输出列表)

(1)格式控制:

用双瞥号括起来的一个字符串,称为格式字符串。它有格式声明和普通字符两部分。

(1)格式声明

由”%”和格式字符组成。它的作用是将输出数据转换为指定的格式然后输出。

0d79f7d22adeac4786bd520f8ec2a447.png

下面是几个例子:

float i = 5555555.93232323232;

printf("%4.1f",i);

得到结果:5555556.0

整数部分一定会展示,那么m>整数部分

float i = 5555555.93232323232;

printf("%10.6f",i);

得到结果:555556.000000

(2)普通字符

别的一些希望输出的

(2)输出列表

程序需要输出的一些数据,可以是常量、变量或者表达式、

如:

printf("a=%d b =%d",a,b)

其中,第一个逗号表示的格式,

定义了两个a、b按照前面定义的两个%d表示。

使用scanf函数输入数据

一般格式

scanf(格式控制,地址表列);

地址表列:是由若干个地址组成的表列,可以是变量的地址,或字符串的首地址。

格式说明

以%开始,以一个格式字符结束,中间可以插入附加的字符。

e47ee7e204df19a7e52676b69898ed16.png

注意说明

(1)

地址列表不是变量名,如果是变量a,则应该写成&a

(2)

如果在”格式控制字符串”中除了格式声明以外还有其他字符,则在输入数据时在对应的位置上

应输入与这些字符相同的字符。

scanf(“a = %f,b=%f,c=%f”,&a,&b,&c);

如果输入:1 2 3

如果输入:1,2,3,

都是不对的,应该输入:a=1,b=2,c=3

系统会把它和scanf函数中的格式字符串逐个字符对照检查,只是在%f的位置上代以一个浮点数。

(3)

在使用%c格式输入字符时,空格字符和“转义字符”都作为有效字符输入,所以再输入字符时候

注意空格的使用。

(4)

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

使用putchar()函数

从计算机向显示器输出一个字符,可以调用系统函数库中的putchar函数(字符输出函数)。

putchar(c)

(1)

putchar(‘\n’)

结果是:输出一个换行符,使输出的当前位置移到下一行开头。

(2)

putchar(c)

这个c可以是字符常量、整型常量、字符变量或者是整型变量,只需要其值在ASCII代码范围内。

这样计算机内部就能识别,转换成相应的字符。

使用getchar()函数

向计算机输入一个字符,

getchar()

他没有参数,作用是从计算机终端输入一个字符,即计算机获得一个字符,getchar函数的值就是从输入

设备得到的字符。但是getchar()只能得到一个字符,如果想输入多个字符就用多个getchar()函数。

可以在使用时候:

a=getchar();

(1)

不仅可以获取屏幕上显示的字符,还可以获取一些屏幕上不显示的,比如控制字符。

补充的问题

(1)

关于scanf函数

int a[5];

for(int i = 0;i<5;i++){

scanf(“%d”,&a[i]);

printf(“%d\n”,a[i]);

}

上述的程序,不难理解,是一个给数组赋值的代码。

但是表现在屏幕上就是:

6b3a51d5d33b281d9bd4961eeb31ab01.png

有没有考虑过和咱们对于for循环的理解不对,正常来讲应该是:用户输入1,然后走打印语句,然后在屏幕在打印1,

但是这里不是,这个就和scanf()函数有关 了

scanf函数不能直接从键盘读取数据,它只能从标准IO输入缓冲区读取数据,而缓冲区的数据来自于内核,内核数据才来自于键盘。

当用户按了回车键之后,前面输入的数据还有回车键(\n)这个字符都会放在缓冲区内,像这个,就是1、2、3、4、5、\n

然后从缓冲区中读取符合的数。数读取之后,在缓存区就没了。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值