printf 函数

  • #include <stdio.h> C语言标准输入输出头文件

  • printf做原样打印,把要打印的东西作为参数

  • 代码的行数不影响显示结果的行数

//函数
//printf("要打印的内容");
//一行的形式
printf("ILoveYou");
printf("ILoveYou""IMissYou""HaHa");
//多行的形式 每行都需要有"" 代码格式分为多行 但实际输出并没有多行
printf("ILoveYou"
"IMissYou"
"HaHa");
/*输出*/
ILoveYouILoveYouIMissYouHaHaprintf("ILoveYou\n"
"IMissYou\n"
"HaHa\n");
/*输出*/
ILoveYou
ILoveYou
IMissYouHaHaprintf("ILove\r123");    //打印123时回到当前行首,当前行前面有东西,采用覆盖的方式
/*输出*/
123 e    //123'\0'e      //有一个不可见字符'\0'字符串结束标记 打印出来没有任何效果
  • 转义字符→ 达到打印的格式调整

常用的转义字符 效果
\n 换行
\r 换行(回到当前行首),判断按键是否是回车键
\t 水平制表

制表的原理: 通过控制数据的输出宽度,不足8位填充空格,超过8位以16位制表,1个 ' \t ' 8位两个' \t '16位

汉字:占用两个位置

普通字符:占用一个位置

printf("姓名\t年龄\t编号\t");
printf("大白\t18\t1001\t");printf("姓名\t\t年龄\t编号\t");
printf("12345678\t18\t1001\t");/*输出*/
姓名    年龄    编号
大白     18     1001姓名        年龄    编号
12345678     18     1001

打印特殊符号

  • 通过\加上特殊符号打印符号

//printf("""); 报错
printf("\"\t\'");
printf("\\");    //两个\打印一个'\' 不能是3个'\' 会和注释混在一起
printf("%%");    //特殊符号和转义字符无关 两个%打印一个%
/*输出*/
"    '\%

数据的输出

  • 格式控制字符: 占位符

  • 不同的数据类型有不同的控制字符

  • 数据的顺序必须要和占位符的顺序一致

int  %d
char %c
float %f
double %lf
字符串  %s 指针类型
unsigned int %u
printf("a=%d,b=%c",1,'A');
a=%d,b=%c1,  'A'
a=1,b=A
//一般情况下占位符的个数是要和后面数据个数相同
printf("整数:%d,字符:%c,字符串:%s",1,'a',"iloveyou");
int iNum = 3;
char cNUm = 'N';
printf("iNUm = %d,cNum = %c\n",iNum,cNum);    /*输出*/整数:1,字符:a,字符串:iloveyou
iNUm = 3,cNum = N
  • 浮点型的格式问题

%+a.bf
%-a.blf
a:输出数据的宽度 不足补空格
b:小数位
+: 右对齐 不写默认是右对齐
-: 左对齐
printf("%3.3lf\n",1.3345);    //有效小数位数是 3 位 最后一位5没有打印,四舍五入往前进了一位
printf("%10.3lf\n",1.3345);   //输出数据的宽度是 10 位//通过输出数据的宽度 自己制表
printf("%-10s%-10s%-10s\n","姓名","年龄","编号");
printf("%-10s%-10s%-10s\n", "12345678","18","1001");/*输出*/1.335      1.335
姓名      年龄      编号
12345678  18       1001

scanf函数

  • scanf 基本用法

    • &(按 shif + 7键)取地址符:取变量的地址-->把数据放到变量的内存中去,要知道变量在内存中的位置

    • scanf 工作原理

      • scanf("格式控制字符","变量的地址");

      • 输入的格式控制字符不需要转义字符,不需要精度控制

      • 输入的数据放在输入缓冲区stdin中,scanf 函数根据格式控制字符去输入缓冲区中拿数据

      • error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead

        • 项目属性-->SDL改为否

  • 字符输入

    • 清除缓冲区---> 在字符或者字符串输入前 做了输入,就需要清除缓冲区

  • scanf_s: vs给 scanf 做的增强版本

    • 输入数字类是没什么区别

    • 输入字符类或者字符串必须要加入长度

    • 其他编译器没有 scanf_s 只有 scanf

  • scanf一次输入多个不同类型的数据

#include <stdio.h>
int main()
{//No.4 不同数据类型输入//数字和字符组合在一起int iNum;char xNum;double dNum;printf("input int,char,double:");//scanf自动区分数据,不需要人为区分:字符和浮点数之间不需要加空格scanf("%d %c%lf", &iNum, &xNum, &dNum);     //1 A 3.13为了避免数据出错强制加一个空格printf("iNum=%d,xNum=%c,dNum=%lf\n", iNum, xNum, dNum);printf("input int,char,double:");           //输入数据的格式必须是这个格式//%d,%c,%lf //scanf("%d,%c,%lf", &iNum, &xNum, &dNum);//printf("iNum=%d,xNum=%c,dNum=%lf\n", iNum, xNum, dNum);scanf_s("%d %c%lf", &iNum, &xNum,1, &dNum); //多个字符输入用scanf_sprintf("iNum=%d,xNum=%c,dNum=%lf\n", iNum, xNum, dNum);//No.1 输入单个数据printf("input a num:");//习惯:定义变量的时候给变量初始化(赋初始值)int num = 0;                  //定义变量赋值为0int result = 0;               //返回值被忽略 scanf的返回值:输入数据的成功个数result=scanf("%d", &num);     //等待键盘输入printf("num=%d\n", num);//No.2 输入多个数据int a, b;printf("input a,b:");result=scanf("%d%d", &a, &b); //格式控制字符中没有空格但是可以输入空格|或者用回车当作数据的间隔|在字符输入时会有影响printf("a=%d,b=%d\n",a,b);//scanf("%d\n", &a);          //没有这种写法float fNum;//scanf("%.3f", &fNum);       //没有这种写法//No.3 字符输入char cNum;char x;printf("input a char:");//getchar();                //常用scanf("%c", &x);              //接收字符再做输入 清除缓冲区的\n x等于'\n'//fflush(stdin);           //被淘汰//setbuf(stdin);           //会影响文件操作//这个两个等效上面scanf的作用scanf("%c", &cNum);printf("cNum=%c\n", cNum);printf("input a char:");scanf("%c", &x);              //没有停在字符输入的位置-> '\n'直接给了字符scanf_s("%c", &cNum, 1);    //长度一般用变量能够存储的数据长度-> 能够存储的数据长度printf("cNum=%c\n", cNum);//字符串--字符数组;return 0;
}
/*输出*/input int,char,double:1           //多个输入中间有字符导致出错的原因:把空格当做字符去处理
A
1.23
iNum=1,xNum=A,dNum=1.230000
input int,char,double:1
e
1.34
iNum=1,xNum=e,dNum=1.340000
input a num:3
num=3
input a,b:2
4
a=2,b=4
input a char:A
cNum=A
input a char:C
cNum=C

字符处理函数

getchar函数

  • 输入一个字符,getchar() 表示输入的字符

  • #include <stdio.h>

putchar函数

  • 输出一个字符,putchar('A') 要输出的字符放在括号中

  • 一旦字符输入前做了输入,就一定要做清空缓冲区处理,否则会存在跳过现象

  • #include <stdio.h>

getch函数

  • 输入一个字符,getch() 表示输入的字符,不需要回车确认输入

  • #include <conio.h>

  • 在vs中,getch()要改为 _getch()

#include <stdio.h>
#include <conio.h>
int main()
{//NO.2 getchint userKey = 0;userKey = _getch();    //不需要回车确认 输入完就可以做交互//想象玩游戏上下左右键的处理putchar(userKey);//scanf_s scanf,getchar 都需要回车确认输入//No.1  getchar() putchar()int number;printf("input a number:");scanf_s("%d", &number);printf("number=%d\n", number);int iNum;printf("input a char:");//int x;//scanf("%c", &x);   //定义一个 x 接收换行getchar();          //输入一个字符,不做处理用来清空缓冲区(清除\n) C6031:返回值被忽略"getchar"iNum=getchar();      //getchar():输入一个字符,getchar() 表示输入的字符 然后把输入的字符赋值给iNum//上面这句话等效: scanf("%c",&iNum);printf("iNum=");putchar(iNum);       //打印iNumputchar('\n');       //等效printf("\n");return 0;
}
/*输出*/2input a number:3
number=3
input a char:e
iNum=e

ASCLL码

用于做整数和字符的转换

字符存储在计算机中是一个数字,不同的字符对应不同的编码:ASCLL码,ASCLL码表代表了字符在计算机中的数据是多少

字符 A:65,字符 a:97,大写和小写之间相差 32,字符 0~9:48~57

int main()
{//No.1 基本转换printf("%c\n",65);     //用%c的方式打印整数->格式控制字符和数据不一致|默认通过ASCLL码表把65转换为字符printf("%d\n",'A'); //No.2 常用形态int a = 'A';printf("%d\n",a);      //自动把'A'转换为65->用%d的方式打印a就是65//2.1大小写转换--->任何大写字母和小写字母的间距是一样的 相差32--->相应的大写字母65+32==小写字母97char number = 'A';     //把大写'A'转换为'a'putchar(number + 32);  //打印小写'a'->打印字符|把97转换为小写a打印出来putchar('\n');//任何两个大、小写字母之间的间距是相同的//'A'-'a'=number-x;//x=number+'a'-'A';number = 'A';putchar(number + 'a' - 'A');putchar('\n');//2.2字符1转数字1char first = '1';int one = first -'0';  //因为字符0-9是连续的printf("%d\n",one);printf("打印:\101\n"); //特殊的格式控制字符: 65的八进制--->\ddd:1到3位八进制所代表的任意字符
}
/*输出*/A
65
65
a
a
1
打印:A

c语言 --- 基本输入输出相关推荐

  1. c语言编译无错误但不能输入输出,第2章-C语言版输入输出.ppt

    第2章-C语言版输入输出.ppt 2.1 格式化输出--printf()函数 printf()函数的作用:向计算机系统默认的输出设备(一般指终端或显示器)输出一个或多个任意类型的数据. 2.1.1 p ...

  2. c语言标准输入输出ppt,C语言版输入输出.ppt

    <C语言版输入输出.ppt>由会员分享,可在线阅读,更多相关<C语言版输入输出.ppt(25页珍藏版)>请在装配图网上搜索. 1.第二章 C语言版输入输出,C语言中的输入输出操 ...

  3. c语言输入循环语句,C语言中输入输出和循环语句详解.ppt

    C语言中输入输出和循环语句详解 C语言的输入输和循环分支语句详解 本章主要向大家介绍下C语言的输入和输出功能以及循环分支语句的使用 第4章 顺序结构程序设计 3.1 C语言语句 3.2 赋值语句 3. ...

  4. c语言的输入输出语句有哪些?

    c语言的输入输出语句有:"getchar(void);"和"putchar(int c);"."scanf("格式控制字符串",地 ...

  5. c语言FILE 输入输出

    c语言FILE 输入输出 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #inc ...

  6. c语言实现输入输出功能需要调用库函数,C语言学习笔记(二)

    格式字符的输入和输出 1.C语句的分类 1)控制语句    if...else ; continue ; switch ; break ; for(....) ; goto ; while(....) ...

  7. 牛客网C语言考试输入输出问题

    如果是用C语言考试,且HW的需要自己写输入输出的,请注意. 以下绝对不能用 void main() { return ; } 图省事不写返回值,但是会导致网站一直报错,输出无法正常输出,fflush( ...

  8. C语言的输入输出模型

    参考:http://blog.csdn.net/shrdlu/article/details/48929865 其实对于计算机器的理解,难点是为什么会有这个模型的建立,也就是模型建立的实际意义,另外还 ...

  9. c语言如何输入输出string类型的数据

    一般C语言中输入字符串要么使用字符数组, 要么使用字符指针:但有时在C++中用到string类型,而为了节省程序运行过时间经常使用c中的标准输入输出scanf() 和 printf() ,但是c中没有 ...

  10. C语言如何输入输出字符串

    C语言中没有专门的字符串变量,如果想将一个字符串存放在变量中,就必须使用字符数组,数组中每一个元素存放一个字符.不要讲字符常量和字符串常量混淆,'a'是字符常量,"a"是字符串常量 ...

最新文章

  1. Windows Server 2008 R2 Beta VHD镜像文件发布
  2. 画pytorch模型图,以及参数计算
  3. Boost:自定义静态向量
  4. java追加一个sheet_(二)POI-创建一个sheet页,并添加行列数据
  5. iOS开发基础篇——介绍C++内置函数
  6. 初级使用Latex写论文经验总结
  7. (37)FPGA原语设计(BUFR)
  8. 提效80%|一次【Jmeter】实践的接口自动化
  9. python语言入门q-Python基础教程中的函数
  10. RHEL6.1在字符模式下安装图形界面
  11. 在 Web 级集群中动态调整 Pod 资源限制
  12. 12306 辟谣用户信息被卖;比特大陆两 CEO 均卸任?苹果又被起诉 | 极客头条
  13. sql语句返回近似值
  14. antd树型选择控件选择父级_element的tree树形菜单回显、父级半勾选
  15. 一个文科妹子的前端悲欢编程之路
  16. OpenCV中,CV_FILLED(-1),其他值表示线宽
  17. 【遥感微课堂】学习ENVI5.0
  18. 苏州大学计算机考研复试经验,苏大考研网:2014年苏州大学计算机考研经验
  19. Navicat Premium远程连接ORACLE
  20. python中shape的解释

热门文章

  1. gitbook中book.json文件详解
  2. Docker容器内时间不正确调整
  3. unity3d IGUI下载
  4. 澳门大学研究生计算机专业含金量,澳门大学的研究生院怎么样?什么专业比较好?...
  5. 澳门大学计算机qs排名,澳门大学2018-2019年QS排名
  6. Diablo 3 Web API
  7. 强化学习--Prioritised Replay DQN
  8. HTTP报文头解析(图文)
  9. php校园晨跑,学校晨跑的作文600字
  10. java第一行输出1当i=10 输出0_当输出模式位MODE[1:0]=10时,最大输出速度为: