admin管理员组文章数量:1794759
【C语言入门】
C语言------初识 第一部分
初识
1.VS 2022 中scanf 报错 的 问 题当我们在VS2022使用scanf时,会出现以上错误:
解释为: 可以考虑使用scanf_s来代替,如果想继续使用,在前面加上_CRT_SECURE_NO_WARNINGS
#include<stdio.h> int main() { int a; scanf("%d", &a); printf("%d", a); }scanf()函数是标准C中提供的标准输入函数,用以用户输入数据
scanf_s()函数是Microsoft公司VS开发工具提供的一个与scanf功能相同的安全标准输入函数,仅能在VS中使用,如果想要继续使用scanf,只需要在文件顶部加入一行
#define _CRT_SECURE_NO_WARNINGS即可。
2.printf的使用1 ) 可以在”%”和字母之间插进数字表示最大域宽
printf("%4d",a); 表示输出4位整型数据; printf("%6s",b); 表示输出六个字符的字符串; printf("%9.2f",c); 表示输出场宽为9的浮点数, 其中小数点后两位小数; 2 ) 可以在域宽前加数字0,用于填补宽度
printf("%04d",&d); 表示在输出一个小于4位的数值时, 将在前面补0使其总宽度为4位; 例: #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> int main(){ int a; scanf("%d", &a); printf("%04d", a); } 当输入数字为202时,输出为0202.前边自动补齐四位:
3 )在%后加“-”表示左对齐
printf("%-7d",e) 表示输出7位整数左对齐;4 )用浮点数表示字符输出格式
%6.9s 表示显示一个长度不小于6且不大于9的字符串,若大于9, 则第9个字符以后的内容将被删除;附:
printf可以设置输出的精度和域宽,scanf是不能设置精度的,也就是不能出现任何 .xf 这样的格式 ,但是可以写成scanf(“%2f”)设置域宽,是正确的格式。
%o 以八进制整数形式输出,这个就用得很少了,了解一下就行了。
%x(或 %X 或 %#x 或 %#X) 以十六进制形式输出整数,这个很重要*
printf("八进制、无前缀输出结果:%o\\n",ii); // 八进制、无前缀输出结果:144 printf("八进制、有前缀输出结果:%#o\\n",ii); // 八进制、有前缀输出结果:0144 printf("十六进制、无前缀输出结果:%x\\n",ii); // 十六进制、无前缀输出结果:64 printf("十六进制、有前缀(小写)输出结果:%#x\\n",ii); // 十六进制、有前缀(小写)输出结果:0x64 printf("十六进制、无前缀输出结果:%X\\n",ii); // 十六进制、无前缀输出结果:64 printf("十六进制、有前缀(大写)输出结果:%#X\\n",ii); // 十六进制、有前缀(大写)输出结果:0X6 3.C语言中 %f 和 %lf 的区别float, 单精度浮点型,对应%f。 double,双精度浮点型,对应%lf。
scanf中的格式控制
scanf:float用%f,double用%lf
printf中的格式控制
在printf中,无论是float类型还是double类型,输出都需要用%f,在有些系统中用%lf也不会出错,但是尽量还是按照标准来。
所以在输入输出时,一定要区分好double和float,而使用对应的格式符号。
4.C语言中的多组输入与输出输入指的是在输入一组数据后,程序便结束运行。而多组输入指的是在输入一组数据后,程序不会结束,它还会接收另一组数据.
以a+b为例进行讨论:
1.只有一组测试数据时 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> int main() { int a,b; scanf("%d %d", &a, &b); printf("%d", a + b); return 0; } 2.输入没有数据总数(任意组) #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> int main() { int a, b; while (scanf("%d%d", &a, &b) != EOF) // 把你的scanf函数写成这样子,除了return 0之外,其他的语句都要用大括号括起来. { printf("结果为%d\\n", a + b); } return 0; }此时可以读入多组数据并分别进行输出
3.指定数据量 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> int main() { int n, a, b; scanf("%d", &n); while (n--)//n自减直到n=0时结束 { scanf("%d %d", &a, &b); printf("%d\\n", a + b); } return 0; }这种情况下可以指定数据的量数 如: n = 5
4.以特定元素作结束符输入和第一种类似。常用特殊符号结束或者0与 - 1来当作结束标志
//a=b=0时结束 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> int main() { int a, b, n; while (1) { scanf("%d %d", &a, &b); if (a == 0 && b == 0)//a与b同时0时结束 break; printf("%d\\n", a + b); } return 0; }在上述情况下,满足指定条件则程序结束
5.C语言中转义字符的使用示例一:
当我们要在我们要在屏幕上打印一个目录 c:\\code\\test.c时
#include<stdio.h> int main() { printf(" c:\\code\\test.c"); return 0; }结果却是:
这是因为\\与后面的英文字母构成了转义字符,\\t是水平制表符,就是键盘最左边一列上的table键。
同时为防止\\被解释为一个转义序列符,我们就需要在\\前面再加上一个\\,让它称为普普通通的\\,所以正确的写法应该是
#include<stdio.h> int main() { printf(" c:\\\\code\\\\test.c"); return 0; }此时的运行结果为
就得到我们想要的结果了。
示例二:
判断输出的结果如何
#include<stdio.h> int main() { printf("%d\\n", strlen("abcdef")); // \\32被解析成一个转义字符 printf("%d\\n", strlen("c:\\test\\328\\test.c")); return 0; }答案分别为: 6 和 14
第一个字符串是由六个字母组成的;
第二个字符串分别是’c’ ‘:’ ‘\\t’ ‘e’ ‘s’ ‘t’ ‘\\32’ ‘8’ ‘\\t’ ‘e’ ‘s’ ‘t’ ‘.’ 'c’总共14个字符。其中\\328不要误认为是一个字符,这是因为八进制数字只有0-7,因此8单独作一个字符;
附转义字符表如下:
版权声明:本文标题:【C语言入门】 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686650882a90650.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论