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

转义字符

\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. [LC] 674. Longest Continuous Increasing Subsequence

    Given an unsorted array of integers, find the length of longest continuous increasing subsequence (s ...

  2. jtemplates使用+同内容列合并

    function ImportStatistics(val, pros) { top.$.jBox.tip("导入已完成,正在统计整理导入的数据...", 'loading'); ...

  3. Torque:轻应用背后的大蓄势 微软语音技术厚积薄发​

    Torque,为中国用户而来 此前,"微软车库"公开发布了一系列小而美的产品,它们全部由具有"极客创新"精神的微软员工在工作之外的时间构思和开发.Torque就 ...

  4. fiddler问题汇总

    fiddler教程:https://kb.cnblogs.com/page/130367/ fiddler下载安装:https://www.cnblogs.com/mini-monkey/p/1128 ...

  5. html一个页面链接携带参数跳转另一个页面基于vue2.0的element框架

    来给生活比个耶! 1.按钮 <el-button @click="albumList(scope.row.id)" size="mini" type=&q ...

  6. Luogu_2876_[USACO07JAN]解决问题Problem Solving

    题目描述 过去的日子里,农夫John的牛没有任何题目. 可是现在他们有题目,有很多的题目. 精确地说,他们有\(P(1 \leq P \leq 300)\)道题目要做. 他们还离开了农场并且象普通人一 ...

  7. python socket粘包及实例

    1.在linux中经常出现粘包的出现(因为两个send近靠着,造成接受到的数据是在一起的.)解决方法: 在服务端两send的中间中再添加一个recv(),客户端添加一个send(),服务端收到信息确认 ...

  8. iOS 编程:NSURLSession

    定义:描述 Foundation 框架类在标准的网络传输协议下,用 URLs 连接因特网并与服务器交互的一整套体系. 支持的传输协议: File Transfer Protocol (ftp://) ...

  9. Design Patterns in Android

    对日常在 Android 中实用设计模式进行一下梳理和总结,文中参考了一些网站和大佬的博客,如 MichaelX(xiong_it) .菜鸟教程.四月葡萄.IAM四十二等,在这里注明下~另外强烈推荐图 ...

  10. scrapy爬虫-scrapy-redis分布式

    1.如何将一个scrapy爬虫项目修改成为一个简单的分布式爬虫项目 官方文档:https://scrapy-redis.readthedocs.io/en/stable/ 只用修改scrapy项目的两 ...