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. 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. 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码的十进制值。

  1. 2.        字符的输入/输出

getchar()  putchar()     是C标准  函数库中  专门用于   字符输入/输出的函数。

函数putchar( )的作用是把  一个字符  输出到   屏幕的当前广播位置。

函数getchar( )的作用是从   系统隐含指定的输入设备(即键盘)  输入一个字符,

按回车键表示输入结束,   读入的字符会自动被回显到屏幕上。

即小写英文字母的ASCII码值比相应的大写英文字母的ASCII码值大32,

注意,函数getchar()没有参数 , 函数的返回值就是从终端键盘读入的字符。

函数putchar()的参数就是待输出的字符,这个字符既可以是可打印字符,也可以是转义字符。

查看下方代码,找出代码输出的是什么?

  1. /* Note:Your choice is C IDE */
  2. #include "stdio.h"
  3. void main()
  4. {
  5. int i,g,s,b,q,x,y=,sum=;//i是一个5000一下的自然
  6. for (i=;i<+;i++)
  7. {
  8. g=i%;
  9. s=i%/;
  10. b=i%/;
  11. q=i/;
  12.  
  13. x=q+b;//千位与百位之和
  14.  
  15. if(x==s+g&&x==*(g-q))
  16. { y=y+; }}
  17. printf("共有符合条件的数%d个。\n",y);
  18. printf("分别为:\n");
  19. for (i=;i<+;i++)
  20. {
  21. g=i%;
  22. s=i%/;
  23. b=i%/;
  24. q=i/;
  25.  
  26. x=q+b;//千位与百位之和
  27.  
  28. if(x==s+g&&x==*(g-q)){
  29. printf("%d\t",i);
  30. sum+=i;
  31. }
  32.  
  33. }
  34. printf("\n其和为:%d",sum);
  35. }

C语言入门5-键盘的输入和屏幕输出的更多相关文章

  1. C语言程序设计(四) 键盘输入和屏幕输出

    第四章 键盘输入和屏幕输出 转义字符 \n 换行,光标移到下一行的起始位置 \r 回车(不换行),光标移到当前行的起始位置 \0 空字符 \t 水平制表 \v 垂直制表 \b 退格 \f 走纸换页 \ ...

  2. MyBatis入门(二)—— 输入映射和输出映射、动态sql、关联查询

    一.输入映射和输出映射 1. parameterType(输入类型) 1.1 传递简单类型 <select id="getUserById" parameterType=&q ...

  3. 【C语言程序】让用户输入一句话,输出这句话中每个单词含有多少个字母

      #include <stdio.h> #define N 100 //宏定义,用N表示100 int main(int argc, char *argv[]) {  ;  char s ...

  4. Perl语言入门:第七章习题:输出文件中包含一个大写字母的所有行,不输出一行的内容全是大写的

    文件内容: bash-2.03$ cat file_4_ex_ch7.txt anonymous attribute demolition grammar rules indices refernce ...

  5. c语言之字符输入输出和输入验证

    单字符I/O:getchar()和putchar() #include<stdio.h> int main(void) { char ch; while ((ch = getchar()) ...

  6. 【C语言入门教程】3.2 数据的输入 与 输出

    在程序的运行过程中,通常需要用户输入一些数据,而程序运算所得到的计算结果等又需要输出给用户,由此实现人与计算机之间的交互.所以在程序设计中,输入输出语句是一类必不可少的重要语句.在 C 语言中,没有专 ...

  7. Ubuntu下键盘输入错乱问题,输入双引号输出的是@符号,输入#号输出的是未知语言的字符

    装完搜狗后,键盘开始出现混乱,切换到英文输入法,输入双引号输出的是@符号,输入#号输出的是未知语言的字符. 网上有的说在 system - keyboard - Input Source 下看看是否是 ...

  8. 大一C语言学习笔记(11)---编程篇--写一个程序,可以获取从键盘上输入的的三个数,并能够判断是否可以以这三个数字作为边长来构成一个三角形,如果可以的话,输出此三角形的周长及面积,要求 0 bug;

    考核内容: 写一个程序,可以获取从键盘上输入的的三个数,并能够判断是否可以以这三个数字作为边长来构成一个三角形,如果可以的话,输出此三角形的周长及面积: 答案: #include<stdio.h ...

  9. 《C语言入门1.2.3—一个老鸟的C语言学习心得》—清华大学出版社炮制的又一本劣书及伪书

    <C语言入门1.2.3—一个老鸟的C语言学习心得>—清华大学出版社炮制的又一本劣书及伪书 [薛非评] 区区15页,有80多个错误. 最严重的有: 通篇完全是C++代码,根本不是C语言代码. ...

随机推荐

  1. 在mac上尝试docker-swarm

    声明:本博客欢迎转发,但请保留原作者信息!新浪微博:@Lingxian_kong;博客地址:孔令贤的博客;内容系本人学习.研究和总结,如有雷同,实属荣幸! 安装docker-machine 我的安装环 ...

  2. C语言实现常用数据结构——栈

    #include<stdio.h> #include<stdlib.h> //用链表实现栈 typedef struct Node { int data; struct Nod ...

  3. java集合框架collection(6)继承结构图

    根据<java编程思想>里面的说法,java集合又叫容器,按照单槽和双槽分为两类,Collection和Map,这两个都是接口. 一.Collection Collection下面又分了三 ...

  4. web页面的时间传入servlet如何转换为可以存入MySQL的Date类型

    在web页面中当使用如下语句: <input type="date" name="startTime"/> 提交到servlet中 在servlet ...

  5. 深入V8引擎-AST(1)

    没办法了,开坑吧,接下来的几篇会讲述JavaScript字符串源码在v8中转换成AST(抽象语法树)的过程. JS代码在V8的解析只有简单的几步,其中第一步就是将源字符串转换为抽象语法树,非常类似于v ...

  6. 【设计模式】行为型03观察者模式(Observer Pattern)

    记得16年初第一次学习了23种设计模式,但是除了少数几个简单的外,其他的很多都是学了个似懂非懂,以至于有人问起甚至说不上来,现在想想,其实就是没看懂而已.例如观察者模式,其实原理很简单,但是当时并没有 ...

  7. python 基础学习笔记(1)

    声明:  本人是在校学生,自学python,也是刚刚开始学习,写博客纯属为了让自己整理知识点和关键内容,当然也希望可以通过我都博客来提醒一些零基础学习python的人们.若有什么不对,请大家及时指出, ...

  8. python面试题(二)字符串常用函数

    今天在微信的公众号上看到了一遍python学习开发的文章,里面有一些python的面试题,碰巧最近python不知道学什么了,索性学一下这篇文章啊!!先写一下一些字符串的常用函数.(ps:本人太菜,若 ...

  9. FireFox下Canvas使用图像合成绘制SVG的Bug

    本文适合适合对canvas绘制.图形学.前端可视化感兴趣的读者阅读. 楔子 所有的事情都会有一个起因.最近产品上需要做一个这样的功能:给一些图形进行染色处理.想想这还不是顺手拈来的事情,早就研究过图形 ...

  10. HDU 3338:Kakuro Extension(脑洞大开的网络流)

    http://acm.hdu.edu.cn/showproblem.php?pid=3338 题意:在一个n*m的地图里面,有黑方块和白方块,黑方块可能是“XXXXXXX”或者“YYY/YYY”,这里 ...