C语言程序设计(四) 键盘输入和屏幕输出
第四章 键盘输入和屏幕输出
转义字符
| \n | 换行,光标移到下一行的起始位置 |
| \r | 回车(不换行),光标移到当前行的起始位置 |
| \0 | 空字符 |
| \t | 水平制表 |
| \v | 垂直制表 |
| \b | 退格 |
| \f | 走纸换页 |
| \a | 响铃报警提示音 |
| \" | 一个双引号 |
| \' | 一个单引号 |
| \\ | 一个反斜线 |
| \? | 问号 |
| \ddd | 1到3位八进制ASCII码值所代表的字符 |
| \xhh | 1到2位十六进制ASCII码值所代表的字符 |
每个字符都有一个等价的整型值与其相对应,这个整型值就是该字符的ASCII码
从这个意义上而言,可将char型看成是一种特殊的int型
对char型数据和int型数据进行相互转换不回丢失信息
Unicode——国际标准化组织制定的更强大的编码
//L4-1
#include <stdio.h>
main()
{
char ch;
printf("Press a key and then press Enter:");
ch = getchar(); /* 从键盘输入一个字符,按回车键结束输入,该字符被存入变量ch */
ch = ch + 32; /* 将大写英文字母转换为小写英文字母 */
putchar(ch); /* 在屏幕上显示变量ch中的字符 */
putchar('\n'); /* 输出一个回车换行控制符 */
}
//运行结果
Press a key and then press Enter:B
b
函数getchar()和putchar()是C标准库中专门用于字符输入/输出的函数
函数getchar()没有参数
printf(格式控制字符串,输出值参数表)
格式控制字符串包括:格式转换说明、需原样输出的普通字符
//L4-2
#include <stdio.h>
main()
{
char ch;
printf("Press a key and then press Enter:");
ch = getchar();
ch = ch + 32;
printf("%c, %d\n", ch, ch); /* 分别输出变量ch中的字符及其ASCII码值 */
}
//运行结果
Press a key and then press Enter:B
b, 98
printf中的()格式修饰符
- l:long
- L:long double
- h:short
- m(m为整数):指定域宽(输出项输出时所占的列数)
- .n(n为非负整数):指定显示精度
//L4-3
#include <stdio.h>
main()
{
const double pi = 3.14159;
double r, circum, area;
printf("Input r:");
scanf("%lf", &r);
circum = 2 * pi * r;
area = pi * r * r;
printf("printf WITHOUT width or precision specifications:\n");
printf("circumference = %f, area = %f\n", circum, area);
printf("printf WITH width and precision specifications:\n");
printf("circumference = %7.2f, area = %7.2f\n", circum, area);/*使用域宽和精度说明符,数据所占域宽为7,显示的精度为2*/
}
//运行结果
Intput r:6
printf WITHOUT width or precision specification:
circumference=37.699111,area=113.097334
printf WITH width or precision specification:
circumference= 37.70,area= 113.10//注意,小数点也占一个字符位置
scanf(格式控制字符串,参数地址表)
在用scanf()输入数值型数据时,遇到以下几种情况都会认为数据输入结束
- 遇空格符、回车符、制表符
- 达到输入域宽
- 遇非法字符输入
如果函数scanf()的格式控制字符串中存在除格式说明符之外的其他字符,那么这些字符必须在输入数据时由用户从键盘原样输入
//L4-4
#include <stdio.h>
main()
{
int a, b;
scanf("%d %d", &a, &b);
printf("a = %d, b = %d\n", a, b);
}
//运行结果
12 34
a = 12, b = 34
scanf("%d%*c%d", &a, &b);允许用户用任意字符作为分隔符输入数据
当scanf()返回指定的数据项数时,表示函数被调用成功
当scanf()返回EOF值时,表示函数被调用失败
//L4-5
#include <stdio.h>
main()
{
int data1, data2;
char op;
printf("Please enter the expression data1 + data2\n");
scanf("%d%c%d",&data1, &op, &data2);
printf("%d%c%d = %d\n", data1, op, data2, data1+data2);
}
//运行结果
Please enter the expression data1 + data2
12+3
12+3 = 15
//L4-6
#include <stdio.h>
main()
{
int a;
char b;
float c;
printf("Please input an integer:");
scanf("%d", &a);
printf("integer: %d\n", a);
printf("Please input a character:");
scanf(" %c", &b); /*在%c前面加一个空格,将存于缓冲区中的回车符读入*/
printf("character: %c\n", b);
printf("Please input a float number:");
scanf("%f", &c);
printf("float: %f\n", c);
}
//运行结果
Please input an integer:12
integer: 12
Please input a character:a
character: a
Please input a float number:3.5
float: 3.500000
C语言程序设计(四) 键盘输入和屏幕输出的更多相关文章
- C语言入门5-键盘的输入和屏幕输出
C程序中的键盘输入和屏幕输出都是通过 调用输入/输出函数 实现的. 一.数据的格式化 屏幕输出 函数printf()的一般格式 (有两种) (1)第一种: printf(格式控制字符串): ...
- JAVA 键盘输入数组,输出数组内容和最大值、最小值
package shuzu; import java.util.Scanner; import java.util.Arrays; public class shuzu { /** * @param ...
- java代码实现从键盘输入编号,输出价格,并且不再编号内的,无效输入!!!!
总结:请给我更好的建议 package com.badu; import java.util.Scanner; //从键盘输入次数,通过输入的编号,输出对应的的商品价格: public class t ...
- Mybatis学习总结(四)——输入映射和输出映射
在前面几篇文章的例子中也可以看到mybatis中输入映射和输出映射的身影,但是没有系统的总结一下,这篇博客主要对这两个东东做一个总结.我们知道mybatis中输入映射和输出映射可以是基本数据类型.ha ...
- Spring+SpringMVC+MyBatis深入学习及搭建(四)——MyBatis输入映射与输出映射
转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6878529.html 前面有讲到Spring+SpringMVC+MyBatis深入学习及搭建(三)——My ...
- Mybatis框架四:输入参数、输出参数
输入参数可以有三种:简单类型,POJO,包装类 关于前两种: http://www.cnblogs.com/xuyiqing/p/8600888.html 这里写一下传递包装类参数: 一个POJO:U ...
- java练习,,,从键盘输入次数,输出最大值,和
总结:你的关注,是我的动力 package com.b; import java.util.Scanner; public class YUIO { public static void main(S ...
- (四)输入参数与输出类型为复杂类型的web服务
一. 服务端发布服务 1.1 定义复杂类型:UserBean.java package service; public class UserBean { private String userId; ...
- c语言程序设计案例教程(第2版)笔记(四)—指针、分配存储空间、文件
零散知识点: 指针类型:每个变量占用的首单元地址称为这个变量的存储地址. “&”为“取地址运算符”.格式:& 变量名.功能:返回指定变量的存储地址. “*”为“取内容运算”.格式:* ...
随机推荐
- FPGA设计思想之串并转换
数据流中,用面积换速度-串行转并行的操作 并行转串行数据输出:采用计数方法,将并行的数据的总数先表示出来,然后发送一位数据减一,后面的接收的这样表示: data_out <= data[cnt] ...
- Centos7下常见命令
1: hostnamectl set-hostname oldgirl 设置主机名直接生效 2: hostname oldboy (暂时生效,重启后恢复原来主机名)
- 详解js面向对象编程
转自:http://segmentfault.com/a/1190000000713346 基本概念 ECMA关于对象的定义是:”无序属性的集合,其属性可以包含基本值.对象或者函数.“对象的每个属性或 ...
- motionbuilder卸载/完美解决安装失败/如何彻底卸载清除干净motionbuilder各种残留注册表和文件的方法
在卸载motionbuilder重装motionbuilder时发现安装失败,提示是已安装motionbuilder或安装失败.这是因为上一次卸载motionbuilder没有清理干净,系统会误认为已 ...
- 事件和异常的传播 · 农场主的黑科技.
inBound事件的传播 何为inBound事件以及ChannelInboundHandler ChannelRead事件的传播ChannelRead是典型的inbound事件,以他为例了解inbou ...
- [洛谷P4299] 首都
题目传送门 还是维护子树信息. 但是这里多了一个找重心的操作. 这里有一个关于树重心的结论,据说可以用反证法证明.反正我不会证 就是:新的重心一定在原来两个重心之间的那条树链上. 这样我们逐步缩小搜索 ...
- 使用Connector / Python连接MySQL/查询数据
使用Connector / Python连接MySQL connect()构造函数创建到MySQL服务器的连接并返回一个 MySQLConnection对象 在python中有以下几种方法可以连接到M ...
- vue2.0一个弹窗组件
- Waymo
技术优势 Waymo在自己的激光雷达系统上投入了大量资金,它认为这项技术对自动驾驶汽车的长期成功至关重要.实际上,该公司声称它已经将专有激光雷达传感器的成本降低了90%,这种传感器以前的制造成本为7. ...
- SIM卡的消失会让运营商们恐慌吗?
中国移动.联通.电信三大运营商原本高高在上,每天乐滋滋地数钱数到手抽筋,但近年来移动互联网的快速普及,让运营商的制霸状态不复存在.成为众多互联网公司的"流量通道",语音.短信等业 ...