1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > c语言 --- 基本输入输出

c语言 --- 基本输入输出

时间:2022-07-08 06:23:34

相关推荐

c语言 --- 基本输入输出

printf 函数

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

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

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

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

转义字符→ 达到打印的格式调整

制表的原理: 通过控制数据的输出宽度,不足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");/*输出*/姓名 年龄 编号大白181001姓名 年龄 编号12345678181001

打印特殊符号

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

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

数据的输出

格式控制字符: 占位符

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

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

int %dchar %cfloat %fdouble %lf字符串 %s 指针类型unsigned int %uprintf("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,字符串:iloveyouiNUm = 3,cNum = N

浮点型的格式问题

%+a.bf %-a.blfa:输出数据的宽度 不足补空格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.3351.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 //多个输入中间有字符导致出错的原因:把空格当做字符去处理A1.23iNum=1,xNum=A,dNum=1.230000input int,char,double:1e1.34iNum=1,xNum=e,dNum=1.340000input a num:3num=3input a,b:24a=2,b=4input a char:AcNum=Ainput a char:CcNum=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:3number=3input a char:eiNum=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位八进制所代表的任意字符}/*输出*/A6565aa1打印:A

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。