I/O的定义
输入输出是计算机系统的重要组成部分。计算机系统接受输入(输入数据),经过CPU处理后输出(输出数据)。
因此,I/O是一个非常重要的概念。现在刚开始学C语言编程,由浅入深。上面我只是解释了一个终端的I/O操作。写一个程序,可以从终端接收用户输入的数据,然后输出到终端。
Scanf功能
c语言提供了scanf函数,用于向程序输入数据。用户可以通过键盘向指定的变量输入数据。printf功能向终端输出数据,scanf功能从终端接收(获取)用户的输入数据。
scanf函数的格式如下:
int scanf (const char* for***t_str,addr list);
功能分析:
(1)参数for***t_str是控件格式的输入字符串;
(2)参数addr列表是一个变量地址列表,需要获取用户输入数据;
(3)函数的返回值是int类型。如果调用成功,将返回addr list指定的参数个数,如果调用失败,将返回值-1。下面是一个程序测试的例子:
程序运行结果如下:
可以看到,相应的输入格式:
scanf(“%d,%d,% d & # 8221,& amp一,& ampb &c);
在%d和%d之间,用逗号“,”分隔,所以输入数据时,用逗号“,”分隔。同样,对于:
scanf(“% d;% d;% d & # 8221,& amp一,& ampb &c);
输入数据时,使用分号“;”分开。
3.1浮点和双输入之间的差异
在printf函数中,输出float和double类型的数据,并以%f格式输出。但是,在scanf函数中,当读取输入float和double类型的数据时,需要注意:
(1)浮点型数据,以%f格式输入;
(2)双精度数据,以%lf格式输入;在%和f之间添加字母“L ”;
测试示例如下:
程序运行结果如下:
可以看到,在编译的时候,已经提示了“警告警告”:第12行代码,即:
scanf(“% f & # 8221,& ampb);
第二个参数B是double类型,但是格式控制输入字符串使用“% f”来指示float类型,因此给出一个警告。输入数据时,以%f格式输入浮点类型。键入double,应该以%lf格式输入。
那么我们在输入数据的时候也可以看到,第二次输入1.2输出0.000000的时候,操作出错了。因此,向double变量输入数据时必须使用%lf格式,输出数据时可以使用%f格式。
Putchar函数和getchar函数
c语言提供了putchar函数,用来向终端输出一个字符;Getchar函数,它可以从终端接收用户输入的字符。该函数定义如下:
void putchar(char c);
功能:将字符C输出到终端屏幕。
int getchar(void);
函数描述:从终端接收用户的输入,得到一个字符,通过函数的返回值返回。
测试示例如下:
程序运行结果如下:
如您所见,可以通过putchar函数输出一个字符常量和一个字符变量。
当我们希望程序从终端接收一个字符时,我们可以使用scanf函数;也可以使用getchar函数。测试示例如下:
程序运行结果如下:
可以看到,当我们输入字符“F”时,按回车键表示输入结束。然后,输出变量c中的值。可以看出,用户输入的字符“F”存储在变量c中
注意:getchar函数的返回值是int类型的,所以我们应该定义一个int变量来接收返回值。然后在使用putchar函数输出int类型变量时,截取最低的字节,这个字节存储的是getchar函数得到的数据。
c语言提供了puts函数,用来向终端输出一串数据。获取函数,该函数可以从终端接收用户输入的字符串。这两个函数的使用需要更好的理解数组和字符串的基础知识,所以在介绍完数组和字符串之后再介绍这个函数的使用。
6摘要
在这一章中,我们介绍C语言中标准终端的I/O操作。
您可以使用printf()函数将信息输出到标准输出终端。您可以使用scanf()函数从标准输入终端获取用户输入的信息。
随着后续课程的深入学习,会学到越来越复杂的系统I/O知识。比如磁盘文件的I/O读写、串口、网络套接字通信等高级I/O应用。
在接下来的“Linux系统编程”课程中,我们学习Linux系统下的串口通信和网络通信,这是一种I/O操作。谈到I/O操作,我们将解释“阻塞和非阻塞”通信模式。
读者要认真分析和掌握每个知识点,然后总结出自己对该知识点的理解。你总结出来的知识,只有深入理解了,才是你掌握的知识。
本文来自别舍不得旧情人投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/480708.html