【C语言入门】--初识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); // 八进制、有前缀输出结果:0144printf("十六进制、无前缀输出结果:%x\n",ii); // 十六进制、无前缀输出结果:64
printf("十六进制、有前缀(小写)输出结果:%#x\n",ii); // 十六进制、有前缀(小写)输出结果:0x64printf("十六进制、无前缀输出结果:%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语言入门】--初识C语言相关推荐
- C语言入门——初识C语言
C语言入门--初识C语言 一. C语言的起源 二. 选择C语言的原因 (一). 设计特性 (二). 高效性 (三). 可移植性 (四). 强大而灵活 (五). 面向程序员 (六). 缺点 三. C语言 ...
- go语言视频教程_ go语言入门视频教程_go语言实战视频教程
许多人可能知道go语言的优点在哪里,但他们不知道go语言适合在哪里使用.通过学习go语言视频教程,可以清楚的知道go语言主要用于服务器端开发,其定位是用来开发"大型软件".学习go ...
- 入门C语言模板,C语言入门经典-C语言编程
C语言入门经典-C语言编程Tag内容描述: 1.第01章C语言编程,C语言是一种功能强大.简洁的计算机语言,通过它可以编写程序,指挥计算机完成指定的任务.我们可以利用C语言创建程序(即一组指令),并让 ...
- c语言编程培训ppt,C语言入门经典-C语言编程.ppt
<C语言入门经典-C语言编程.ppt>由会员分享,可在线阅读,更多相关<C语言入门经典-C语言编程.ppt(27页珍藏版)>请在人人文库网上搜索. 1.第01章 C语言编程,C ...
- c语言入门经典doc,C语言入门经典C语言编程.ppt
C语言入门经典C语言编程.ppt 第01章 C语言编程,C语言是一种功能强大.简洁的计算机语言,通过它可以编写程序,指挥计算机完成指定的任务.我们可以利用C语言创建程序即一组指令,并让计算机依指令行事 ...
- 编程入门c语言ppt,C语言入门经典-C语言编程.ppt
<C语言入门经典-C语言编程.ppt>由会员分享,可在线阅读,更多相关<C语言入门经典-C语言编程.ppt(27页珍藏版)>请在装配图网上搜索. 1.第01章 C语言编程,C语 ...
- 【零基础入门C语言】 初识C语言—1
声明:[零基础入门C语言]系列是博主对B站up主:鹏哥C语言所分享教学内容的学习笔记,并且该系列每篇博客都会将博主听课后总结的纸质版笔记附于文末,供大家参考. 初识C语言章节的内容在于初步了解C语言的 ...
- c语言入门数组,C语言入门之数组(2)
二维数组 前面介绍的数组只有一个下标,称为一维数组, 其数组元素也称为单下标变量.在实际问题中有很多量是二维的或多维的, 因此C语言允许构造多维数组.多维数组元素有多个下标, 以标识它在数组中的位置, ...
- 【C语言】初识C语言(下篇)
如果这世界上真有奇迹,那只是努力的另一个名字. 大家好,这里是anduin.今天将给大家带来初识C语言的最后一部分,和之前一样点到为止,适当补充,今天的内容是#define 定义常量和宏.指针和结构体 ...
- 【C语言】初识C语言(中篇)
种一棵树,最好的时间是10年前,其次是现在. 大家好,这里是anduin,这次的主题依旧是初识C语言,和上次不同,这次我们主要讲两大块,对于一些知识,我们选择略讲,但是对于一些我觉得重要的知识我会对其 ...
最新文章
- ListView 排序
- win8 查看 linux硬盘大小,如何查看显存大小_win8如何查看显存大小
- 区块链BaaS云服务(14)华大BGI区块链“安全多方计算“
- 东方明珠胡俊:「东方明珠数据中台」四年发展历史全解(内附彩蛋)
- ABP VNext从单体切换到微服务
- 阿里云刘伟光:金融核心系统将步入分布式智能化的时代
- 链表——单链表、单向循环链表、双向链表
- loadrunner四大部分
- 从零开始学习搜索引擎(开篇)---Searcharoo.net
- 如何在百度收录平台注册账号获取Token
- Hello CSDN blog
- c语言的表示指数用什么符号,c语言的指数符号
- linux中排序程序,linux排序命令
- es自建搜索词库_ES——中文分词以及词库扩展
- 使用GIMP for Mac
- 破解企业卓越运营难点,做好研发质量管理闭环,从“救火战役”,到“一次做对”
- Consider the following: If you want an embedded database (H2, HSQL or Derby), please put it on the
- Windows10安装Linux子系统Ubuntu
- 海明校验码简析与举例
- linux服务器防病毒,Linux服务器防病毒实战(3)
热门文章
- matlab中randperm()函数的用法
- Java毕业设计实战之book小说阅读系统的实现
- android非root状态,修改文件权限,非Root权限的Android上运行可执行文件
- 库存账龄VS库存库龄
- 安装vue-cli 4058错误解决办法
- BUUCTF 谁赢了比赛
- 【openCV】matlab中bwareaopen和bwmorph(src, 'thin', Inf)opencv下的实现
- MATLAB图像处理的开运算和噪声相关的基本操作-填充和去除—imfill与bwareaopen函数运算
- ZYNQ(PS) 动态加载APP之一
- kali网络端口大全