C语言学习:数据的输入输出

时间:2022-12-27 11:09:16

前言

(1)

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

(2)

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

(3)

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

#include < stdio.h >
#include "stdio.h"
用< >这个时候,编译系统从存放C编译系统的子目录中去寻找所要包含的文件。称为:标准方式
""方式,编译系统现在用户的当前目录中寻找,如果找不到,再通过标准方式寻找。

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

使用Printf函数输出数据

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

(1)

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

(1)格式控制:

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

(1)格式声明

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

下面是几个例子:

  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(格式控制,地址表列);
地址表列:是由若干个地址组成的表列,可以是变量的地址,或字符串的首地址。

格式说明

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

C语言学习:数据的输入输出

注意说明

(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]);
}

上述的程序,不难理解,是一个给数组赋值的代码。
但是表现在屏幕上就是:
C语言学习:数据的输入输出

有没有考虑过和咱们对于for循环的理解不对,正常来讲应该是:用户输入1,然后走打印语句,然后在屏幕在打印1,
但是这里不是,这个就和scanf()函数有关 了

scanf函数不能直接从键盘读取数据,它只能从标准IO输入缓冲区读取数据,而缓冲区的数据来自于内核,内核数据才来自于键盘。
当用户按了回车键之后,前面输入的数据还有回车键(\n)这个字符都会放在缓冲区内,像这个,就是1、2、3、4、5、\n
然后从缓冲区中读取符合的数。数读取之后,在缓存区就没了。

http://blog.csdn.net/kobesdu/article/details/39051399 具体关于scanf函数的使用,请参考这个微博。