C语言入门5-键盘的输入和屏幕输出
C程序中的键盘输入和屏幕输出都是通过 调用输入/输出函数 实现的。
一、数据的格式化 屏幕输出
函数printf()的一般格式 (有两种)
(1)第一种:
printf(格式控制字符串);
printf ( “请输入a的值” );
(2)第二种
printf(格式控制字符串 , 输出值时参数表);// 就是变量名字
printf(“您输入的a的值是:%d”, a );
格式控制字符串(format string)是 用双引号括起来的字符串,也称 转换控制字符串,
输出值参数表可有多个输出值,也可没有(只输出一个字符串时)。
*** 格式控制字符串包括两部分:
需原样输出的普通字符 和 格式转换说明(Format Specifier) %d %f %c
printf( “您输入的a的值是:%d”, a );
如表4—2所示,格式转换说明有%开始,并以转换字符(Conversion Character)结束,用于指定各输出值参数的输出格式。
这里,下面两条语句的作用是等价的。
printf(“%c”,ch);
putchar(ch);
而下面两条语句的作用也是等价的。
printf(“\n”);
putchar(‘\n’);
二、数据的格式化键盘输入
(1) 函数scanf( )的一般格式
scanf(格式控制字符串,参数地址表);
scanf (“%d”, &a);
Scanf(“%d %d” , &a , &b)
其中,格式控制字符串是用双引号括起来的字符串,它包括格式转换说明符和分隔符两个部分。
参数地址表是 由若干变量的地址组成的列表, 这些参数之间用 逗号 分隔。
函数scanf( )要求必须指定 用来接收数据的变量的地址,否则数据不能正确读入指定的内存单元。
必须有 & 符号 ****
- 1. 函数scanf()中的格式修饰符
与prinf()类似,在函数scanf()的%和格式符中间也可插入格式修饰符。
在用函数scanf()输入数值型数据时,遇到以下几种情况都认为数据 输入结束:
(1)遇空格符,回车符,制表符(TAB)
(2)达到输入域宽;
(3)遇非法字符输入。
注意,
如果函数scanf( )的格式控制字符串存在 除格式说明符 以外的其他字符,
那么这些字符必须在输入数据时由 用户从键盘原样输入。********
代码讲解:
void main()
{
int a;
printf("请输入a的值");
scanf("此处是a %d",&a);
printf("你好,你输入的a的值是%d",a);
}
使用函数scanf()时忘记在 变量前面加上取地址运算符& ,
以指定用来接收数据的变量的地址,
这是一个初学者常犯的错误。
三、转义字符
函数scanf()的格式转换说明符(如表4-4所示)通常由%开始,并以一个格式字符结束,用于指定各参数的输入格式。
格式转换说明 |
用法 |
%d |
输入十进制整数 |
%c |
输入一个字符,空白字符(包括空格、回车、制表符)也是有效字符 |
%s |
输入字符串,遇到空白字符(包括空格、回车、制表符)时,系统认为读入结束。 |
%f |
输入实数、以小数或指数形式输入均可 |
%% |
输出百分号%% |
常用函数printf( ) 的格式转换说明
格式转换说明 |
用法 |
%d |
输出带符号的十进制整数,正数的符号省略 |
%c |
输出一个字符 |
%s |
输出字符串 |
%f |
以十进制小数形式输出实数 |
%% |
输出百分号% |
四、单个字符的输入/输出 *****
(多个字符的输入输出,需要用到字符数组,这个知识会在C语言精髓里面学习)
- 1. 字符常量
C语言中的
字符常量是用单引号括起来的一个字符。
例如,‘a’是字符常量, 而a则是一个标识符。
再如,‘3’表示一个字符常量,而3则表示一个整数。
C语言中还引入了 另外一种特殊形式的字符常量 转义字符(Escape Character),
它是以反斜线(\)开头的字符序列,它有特定的含义,用于描述特定的控制字符,
使用时 同样要放到一对单引号内。常用的转义字符如’\n’,’\t’
转义字符表如下表。
字符 |
含义 |
字符 |
含义 |
‘\n’ |
换行 |
‘\a’ |
响铃报警提示声 |
‘\r’ |
回车(不换行) |
‘\“‘ |
一个双引号 |
‘\0’ |
空字符,通常用做字符串结束标志 |
‘\’’ |
单引号 |
‘\t’ |
水平制表 |
‘\\’ |
一个反斜线 |
‘\v’ |
垂直制表 |
‘\?’ |
问号 |
‘\b’ |
退格 |
‘\ddd’ |
1到3位八进制ASCII码值所代表的字符 |
‘\f’ |
走纸换页 |
‘\xhh’ |
1到2位十六进制ASCII码值所代表的字符 |
与’\n’不同的是的,’\r’则表示回车,但不换行,即将广播移到当前行的起始位置。
而’\t’为水平制表符,相当于按下TAB键。
另外值得注意的是:转义序列 出现在字符串中时,是按单个字符计数的。
例如,字符串”abc\n“的长度是4而非5 因为字符’’\n’代表1个字符。
例如,字符’A’在内存中存储的是其ASCII码65的二进制值,存储形式与整型数65类似,只是在内存中所占的字节数不同而已。
char型数据占1个字节。
在ASCII码取值范围内,对char型数据和int型型数据进行相互转换不会丢失信息,二者可以进行混合运算。同时,一个char型数据既能以字符型格式输出,也能以整型格式输出,以整型格式输出时就是直接输出其ASCII码的十进制值。
- 2. 字符的输入/输出
getchar() putchar() 是C标准 函数库中 专门用于 字符输入/输出的函数。
函数putchar( )的作用是把 一个字符 输出到 屏幕的当前广播位置。
函数getchar( )的作用是从 系统隐含指定的输入设备(即键盘) 输入一个字符,
按回车键表示输入结束, 读入的字符会自动被回显到屏幕上。
即小写英文字母的ASCII码值比相应的大写英文字母的ASCII码值大32,
注意,函数getchar()没有参数 , 函数的返回值就是从终端键盘读入的字符。
函数putchar()的参数就是待输出的字符,这个字符既可以是可打印字符,也可以是转义字符。
查看下方代码,找出代码输出的是什么?
- /* Note:Your choice is C IDE */
- #include "stdio.h"
- void main()
- {
- int i,g,s,b,q,x,y=,sum=;//i是一个5000一下的自然
- for (i=;i<+;i++)
- {
- g=i%;
- s=i%/;
- b=i%/;
- q=i/;
- x=q+b;//千位与百位之和
- if(x==s+g&&x==*(g-q))
- { y=y+; }}
- printf("共有符合条件的数%d个。\n",y);
- printf("分别为:\n");
- for (i=;i<+;i++)
- {
- g=i%;
- s=i%/;
- b=i%/;
- q=i/;
- x=q+b;//千位与百位之和
- if(x==s+g&&x==*(g-q)){
- printf("%d\t",i);
- sum+=i;
- }
- }
- printf("\n其和为:%d",sum);
- }
C语言入门5-键盘的输入和屏幕输出的更多相关文章
- C语言程序设计(四) 键盘输入和屏幕输出
第四章 键盘输入和屏幕输出 转义字符 \n 换行,光标移到下一行的起始位置 \r 回车(不换行),光标移到当前行的起始位置 \0 空字符 \t 水平制表 \v 垂直制表 \b 退格 \f 走纸换页 \ ...
- MyBatis入门(二)—— 输入映射和输出映射、动态sql、关联查询
一.输入映射和输出映射 1. parameterType(输入类型) 1.1 传递简单类型 <select id="getUserById" parameterType=&q ...
- 【C语言程序】让用户输入一句话,输出这句话中每个单词含有多少个字母
#include <stdio.h> #define N 100 //宏定义,用N表示100 int main(int argc, char *argv[]) { ; char s ...
- Perl语言入门:第七章习题:输出文件中包含一个大写字母的所有行,不输出一行的内容全是大写的
文件内容: bash-2.03$ cat file_4_ex_ch7.txt anonymous attribute demolition grammar rules indices refernce ...
- c语言之字符输入输出和输入验证
单字符I/O:getchar()和putchar() #include<stdio.h> int main(void) { char ch; while ((ch = getchar()) ...
- 【C语言入门教程】3.2 数据的输入 与 输出
在程序的运行过程中,通常需要用户输入一些数据,而程序运算所得到的计算结果等又需要输出给用户,由此实现人与计算机之间的交互.所以在程序设计中,输入输出语句是一类必不可少的重要语句.在 C 语言中,没有专 ...
- Ubuntu下键盘输入错乱问题,输入双引号输出的是@符号,输入#号输出的是未知语言的字符
装完搜狗后,键盘开始出现混乱,切换到英文输入法,输入双引号输出的是@符号,输入#号输出的是未知语言的字符. 网上有的说在 system - keyboard - Input Source 下看看是否是 ...
- 大一C语言学习笔记(11)---编程篇--写一个程序,可以获取从键盘上输入的的三个数,并能够判断是否可以以这三个数字作为边长来构成一个三角形,如果可以的话,输出此三角形的周长及面积,要求 0 bug;
考核内容: 写一个程序,可以获取从键盘上输入的的三个数,并能够判断是否可以以这三个数字作为边长来构成一个三角形,如果可以的话,输出此三角形的周长及面积: 答案: #include<stdio.h ...
- 《C语言入门1.2.3—一个老鸟的C语言学习心得》—清华大学出版社炮制的又一本劣书及伪书
<C语言入门1.2.3—一个老鸟的C语言学习心得>—清华大学出版社炮制的又一本劣书及伪书 [薛非评] 区区15页,有80多个错误. 最严重的有: 通篇完全是C++代码,根本不是C语言代码. ...
随机推荐
- 在mac上尝试docker-swarm
声明:本博客欢迎转发,但请保留原作者信息!新浪微博:@Lingxian_kong;博客地址:孔令贤的博客;内容系本人学习.研究和总结,如有雷同,实属荣幸! 安装docker-machine 我的安装环 ...
- C语言实现常用数据结构——栈
#include<stdio.h> #include<stdlib.h> //用链表实现栈 typedef struct Node { int data; struct Nod ...
- java集合框架collection(6)继承结构图
根据<java编程思想>里面的说法,java集合又叫容器,按照单槽和双槽分为两类,Collection和Map,这两个都是接口. 一.Collection Collection下面又分了三 ...
- web页面的时间传入servlet如何转换为可以存入MySQL的Date类型
在web页面中当使用如下语句: <input type="date" name="startTime"/> 提交到servlet中 在servlet ...
- 深入V8引擎-AST(1)
没办法了,开坑吧,接下来的几篇会讲述JavaScript字符串源码在v8中转换成AST(抽象语法树)的过程. JS代码在V8的解析只有简单的几步,其中第一步就是将源字符串转换为抽象语法树,非常类似于v ...
- 【设计模式】行为型03观察者模式(Observer Pattern)
记得16年初第一次学习了23种设计模式,但是除了少数几个简单的外,其他的很多都是学了个似懂非懂,以至于有人问起甚至说不上来,现在想想,其实就是没看懂而已.例如观察者模式,其实原理很简单,但是当时并没有 ...
- python 基础学习笔记(1)
声明: 本人是在校学生,自学python,也是刚刚开始学习,写博客纯属为了让自己整理知识点和关键内容,当然也希望可以通过我都博客来提醒一些零基础学习python的人们.若有什么不对,请大家及时指出, ...
- python面试题(二)字符串常用函数
今天在微信的公众号上看到了一遍python学习开发的文章,里面有一些python的面试题,碰巧最近python不知道学什么了,索性学一下这篇文章啊!!先写一下一些字符串的常用函数.(ps:本人太菜,若 ...
- FireFox下Canvas使用图像合成绘制SVG的Bug
本文适合适合对canvas绘制.图形学.前端可视化感兴趣的读者阅读. 楔子 所有的事情都会有一个起因.最近产品上需要做一个这样的功能:给一些图形进行染色处理.想想这还不是顺手拈来的事情,早就研究过图形 ...
- HDU 3338:Kakuro Extension(脑洞大开的网络流)
http://acm.hdu.edu.cn/showproblem.php?pid=3338 题意:在一个n*m的地图里面,有黑方块和白方块,黑方块可能是“XXXXXXX”或者“YYY/YYY”,这里 ...