第四章 键盘输入和屏幕输出

转义字符

\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语言程序设计(四) 键盘输入和屏幕输出的更多相关文章

  1. C语言入门5-键盘的输入和屏幕输出

    C程序中的键盘输入和屏幕输出都是通过  调用输入/输出函数  实现的. 一.数据的格式化    屏幕输出 函数printf()的一般格式  (有两种) (1)第一种: printf(格式控制字符串): ...

  2. JAVA 键盘输入数组,输出数组内容和最大值、最小值

    package shuzu; import java.util.Scanner; import java.util.Arrays; public class shuzu { /** * @param ...

  3. java代码实现从键盘输入编号,输出价格,并且不再编号内的,无效输入!!!!

    总结:请给我更好的建议 package com.badu; import java.util.Scanner; //从键盘输入次数,通过输入的编号,输出对应的的商品价格: public class t ...

  4. Mybatis学习总结(四)——输入映射和输出映射

    在前面几篇文章的例子中也可以看到mybatis中输入映射和输出映射的身影,但是没有系统的总结一下,这篇博客主要对这两个东东做一个总结.我们知道mybatis中输入映射和输出映射可以是基本数据类型.ha ...

  5. Spring+SpringMVC+MyBatis深入学习及搭建(四)——MyBatis输入映射与输出映射

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6878529.html 前面有讲到Spring+SpringMVC+MyBatis深入学习及搭建(三)——My ...

  6. Mybatis框架四:输入参数、输出参数

    输入参数可以有三种:简单类型,POJO,包装类 关于前两种: http://www.cnblogs.com/xuyiqing/p/8600888.html 这里写一下传递包装类参数: 一个POJO:U ...

  7. java练习,,,从键盘输入次数,输出最大值,和

    总结:你的关注,是我的动力 package com.b; import java.util.Scanner; public class YUIO { public static void main(S ...

  8. (四)输入参数与输出类型为复杂类型的web服务

    一. 服务端发布服务 1.1 定义复杂类型:UserBean.java package service; public class UserBean { private String userId; ...

  9. c语言程序设计案例教程(第2版)笔记(四)—指针、分配存储空间、文件

    零散知识点: 指针类型:每个变量占用的首单元地址称为这个变量的存储地址. “&”为“取地址运算符”.格式:&  变量名.功能:返回指定变量的存储地址. “*”为“取内容运算”.格式:* ...

随机推荐

  1. zabbix 扩展脚本

    #!/usr/bin/env python #encoding:utf8 # desc: self-inspection # args: # reboot : reboot AP # check : ...

  2. vscode中的live-server配置https?

    json文件中使用绝对路径添加证书 "liveServer.settings.https": { "enable": true, "cert" ...

  3. android支付宝首页、蚂蚁森林效果、视频背景、校园电台、载入收缩动画等源码

    Android精选源码 android实现蚂蚁森林效果源码 android仿支付宝首页应用管理(拖拽排序,添加删除) android校园网络电台客户端源码 android实现按钮伸缩效果源码 一款仿i ...

  4. nodejs快速测试

    对于一些js功能,可以通过nodejs快速搭建测试环境 1.这里我们先通过express脚手架快速搭建一个项目,或者init一个空项目 2.mkdir script 3.这里假设我们的场景是MQTT接 ...

  5. SHELL用法二(练习)

    1.SHELL编程作业&剖析演练 1)SHELL编程Nginx虚拟主机脚本:  安装Nginx WEB平台:  配置虚拟主机(1个网站):  重启&加载配置文件:  配置hos ...

  6. Struts2开发基本步骤

    1 加载jar文件   commons-fileupload.jar   commons-io.jar   commons-lang.jar   freemaker.jar   ognl.jar   ...

  7. RDS的tar文件恢复到本地mysql5.7版本数据库

    参考博客: 安装qpress软件 https://blog.csdn.net/a18838964650/article/details/82800621 文章介绍补充 https://www.cnbl ...

  8. Oracle之函数中使用游标

    create or replace function getcustprodinstaddr(in_CustId in number,in_area_code in number) return va ...

  9. SpringMVC基本使用步骤

    使用Spring MVC,第一步就是使用Spring提供的前置控制器,即Servlet的实现类DispatcherServlet拦截url:org.springframework.web.servle ...

  10. unittest(20)- 自动更新表格中的测试数据(1)

    # 直接给出第一个手机号,而不是从excel中取数据 from openpyxl import load_workbook from tools.read_config import ReadConf ...