#include
printf做原样打印,把要打印的东西作为参数
代码的行数不影响显示结果的行数
//函数
//printf(“要打印的内容”);
//一行的形式
printf(“ILoveYou”);
printf(“ILoveYou”“IMissYou”“HaHa”);
//多行的形式 每行都需要有"" 代码格式分为多行 但实际输出并没有多行
printf(“ILoveYou”
“IMissYou”
“HaHa”);
/输出/
ILoveYouILoveYouIMissYouHaHa
printf("ILoveYou
"
"IMissYou
"
"HaHa
");
/输出/
ILoveYou
ILoveYou
IMissYouHaHa
printf(“ILove
123”); //打印123时回到当前行首,当前行前面有东西,采用覆盖的方式
/输出/
123 e //123’‘e //有一个不可见字符’'字符串结束标记 打印出来没有任何效果
转义字符 - - - > 达到打印的格式调整
常用的转义字符
效果
换行
换行(回到当前行首),判断按键是否是回车键
水平制表
制表的原理: 通过控制数据的输出宽度,不足8位填充空格,超过8位以16位制表,1个 ’ ’ 8位两个’ '16位
汉字:占用两个位置
普通字符:占用一个位置
printf("姓名 年龄 编号 ");
printf("大白 18 1001 ");
printf("姓名 年龄 编号 ");
printf("12345678 18 1001 ");
/*输出*/
姓名 年龄 编号
大白 18 1001
姓名 年龄 编号
12345678 18 1001
打印特殊符号
通过加上特殊符号打印符号
//printf("""); 报错
printf("" ‘");
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=%c
1, 'A'
a=1,b=A
//一般情况: 占位符的个数是要和后面数据个数相同
printf("整数:%d,字符:%c,字符串:%s",1,'a',"iloveyou");
int iNum = 3;
char cNUm = 'N';
printf("iNUm = %d,cNum = %c
",iNum,cNum);
/*输出*/
整数:1,字符:a,字符串:iloveyou
iNUm = 3,cNum = N
浮点型的格式问题
%+a.bf
%-a.blf
a:输出数据的宽度,不足补空格
b:小数位
+: 右对齐 ,不写,默认是右对齐
-: 左对齐
printf("%3.3lf
“,1.3345); //有效小数位数是3位 最后一位5没有打印,四舍五入往前进了一位
printf(”%10.3lf
",1.3345); //输出数据的宽度是10位
//通过输出数据的宽度 自己制表
printf("%-10s%-10s%-10s
“,“姓名”,“年龄”,“编号”);
printf(”%-10s%-10s%-10s
", “12345678”,“18”,“1001”);
/输出/
1.335
1.335
姓名 年龄 编号
12345678 18 1001
scanf 基本用法
&(shif+7键按出来)取地址符:取变量的地址- - ->把数据放到变量的内存中去,要知道变量在内存中的位置
scanf 工作原理
scanf(“格式控制字符”,“变量的地址”);
输入的格式控制字符不需要转义字符,不需要精度控制
输入的数据放在输入缓冲区stdin中,scanf 函数根据格式控制字符去输入缓冲区中拿数据
error C4996: ‘scanf’: This function or variable may be unsafe. Consider using scanf_s instead
字符输入
scanf_s: vs给 scanf 做的增强版本
输入数字类是没什么区别
输入字符类或者字符串必须要加入长度
其他编译器没有 scanf_s 只有 scanf
scanf一次输入多个不同类型的数据
#include
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
", 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
", iNum, xNum, dNum);
scanf_s("%d %c%lf", &iNum, &xNum,1, &dNum);//多个字符输入用scanf_s
printf("iNum=%d,xNum=%c,dNum=%lf
", iNum, xNum, dNum);
//No.1 输入单个数据
printf("input a num:");
//习惯:定义变量的时候给变量初始化(赋初始值)
int num = 0; //定义变量赋值为0
int result = 0; //返回值被忽略 scanf的返回值:输入数据的成功个数
result=scanf("%d", &num); //等待键盘输入
printf("num=%d
", num);
//No.2 输入多个数据
int a, b;
printf("input a,b:");
result=scanf("%d%d", &a, &b); //格式控制字符中没有空格但是可以输入空格|或者用回车当作数据的间隔|在字符输入时会有影响
printf("a=%d,b=%d
",a,b);
//scanf("%d
", &a); 没有这种写法
float fNum;
//scanf("%.3f", &fNum); 没有这种写法
//No.3 字符输入
char cNum;
char x;
printf("input a char:");
//getchar(); //常用
scanf("%c", &x); //接收字符再做输入 清除缓冲区的
x等于'
'
//fflush(stdin); //被淘汰
//setbuf(stdin); //会影响文件操作
//这个两个等效上面scanf的作用
scanf("%c", &cNum);
printf("cNum=%c
", cNum);
printf("input a char:");
scanf("%c", &x); //没有停在字符输入的位置--->'
'直接给了字符
scanf_s("%c", &cNum, 1); //长度一般用变量能够存储的数据长度--->能够存储的数据长度
printf("cNum=%c
", 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() 表示输入的字符
#include
输出一个字符 ,putchar(‘A’) 要输出的字符放在括号中
一旦字符输入前做了输入,就一定要做清空缓冲区处理,否则会存在跳过现象
#include
输入一个字符,getch() 表示输入的字符,不需要回车确认输入
#include
在vs中,getch()要改为 _getch()
#include
#include
int main()
{
//NO.2 getch
int 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
“, number);
int iNum;
printf(“input a char:”);
//int x;
//scanf(”%c", &x); //定义一个x接收换行
getchar(); //输入一个字符,不做处理用来清空缓冲区(清除
) C6031:返回值被忽略"getchar"
iNum=getchar(); //getchar():输入一个字符,getchar() 表示输入的字符 然后把输入的字符赋值给iNum
//上面这句话等效: scanf("%c",&iNum);
printf(“iNum=”);
putchar(iNum); //打印iNum
putchar(’
'); //等效printf("
");
return 0;
}
/输出/
2input a number:3
number=3
input a char:e
iNum=e
用于做整数和字符的转换
字符存储在计算机中是一个数字,不同的字符对应不同的编码:ASCLL码,ASCLL码表代表了字符在计算机中的数据是多少
字符 A:65,字符 a:97,大写和小写之间相差 32,字符 09:4857
int main()
{
//No.1 基本转换
printf("%c
",65); //用%c的方式打印整数--->格式控制字符和数据不一致|默认通过ASCLL码表把65转换为字符
printf("%d
",'A');
//No.2 常用形态
int a = 'A';
printf("%d
",a); //自动把'A'转换为65--->用%d的方式打印a就是65
//2.1大小写转换--->任何大写字母和小写字母的间距是一样的 相差32--->相应的大写字母65+32==小写字母97
char number = 'A'; //把大写'A'转换为'a'
putchar(number + 32);//打印小写'a'--->打印字符|把97转换为小写a打印出来
putchar('
');
//任何两个大、小写字母之间的间距是相同的
//'A'-'a'=number-x;
//x=number+'a'-'A';
number = 'A';
putchar(number + 'a' - 'A');
putchar('
');
//2.2字符1转数字1
char first = '1';
int one = first -'0';//因为字符0-9是连续的
printf("%d
",one);
printf("打印:A
");//特殊的格式控制字符: 65的八进制--->ddd:1到3位八进制所代表的任意字符
}
/*输出*/
A
65
65
a
a
1
打印:A
写到这里也结束了,在文章最后放上一个小小的福利,以下为小编自己在学习过程中整理出的一个关于 java开发 的学习思路及方向。从事互联网开发,最主要的是要学好技术,而学习技术是一条慢长而艰苦的道路,不能靠一时激情,也不是熬几天几夜就能学好的,必须养成平时努力学习的习惯,更加需要准确的学习方向达到有效的学习效果。
由于内容较多就只放上一个大概的大纲,需要更及详细的学习思维导图的 点击我的Gitee获取。
还有 高级java全套视频教程 java进阶架构师 视频+资料+代码+面试题!
全方面的java进阶实践技术资料,并且还有技术大牛一起讨论交流解决问题。