返回

初识C语言(2)

发布时间:2023-02-13 05:47:05 122
# 数据

又一个假期结束,我将分享出学习C语言的第二篇文章。

这一次主要说几个问题:

第一个:

关于单精度浮点数问题:

#include
int main()
{
float num = 95.6;
return 0;
}

会报错,如图:初识C语言(2)_跨平台

更改方法:将数据改为如下

float num = 95.6f;

加上f的意思是将双精度浮点型强行改为单精度浮点型,如图:初识C语言(2)_#include_02

第二个:例一

输入函数:scanf函数

#define _CRT_SECURE_NO_WARNINGS
#include

int main()
{
int x = 0;
int y = 0;
int z = 0;
scanf("%d%d\n",&x,&y);
z = x + y;
printf("%d\n",z);
return 0;
}

不会报错但会出现输入三组数据(实际两个),如图:初识C语言(2)_跨平台_03

原因就是:scanf函数中\n(换行)引起的。

解决方案:将\n去掉即可,如图:初识C语言(2)_跨平台_04

例二:

#define _CRT_SECURE_NO_WARNINGS
#include

int main()
{
int x = 0;
int y = 0;

scanf("%d%d",&x,&y);
int z = 0;
z = x + y;
printf("%d\n",z);
return 0;
}

在老版VS,(VS2010等)会报错,如图:(来自b站up主截屏)初识C语言(2)_跨平台_05

初识C语言(2)_跨平台_06

而VS2022则是:

初识C语言(2)_#define_07

解决方案:C语言规定所有变量定义在代码块之前,所以将变量放在代码块之前即可(如例一下方的代码)。另外大家尽量按照语言规定去写代码防止跨平台出错。

例三:

#define _CRT_SECURE_NO_WARNINGS
#include

int main()
{
int x = 0;
int y = 0;
int z = 0;
scanf("%d%d\n",&x,&y);
z = x + y;
printf("%d\n",z);
return 0;
}

正常运行,但是若无

#define _CRT_SECURE_NO_WARNINGS

则会报错,如图:初识C语言(2)_跨平台_08

错误:scanf函数可能不安全,用vs提供的scanf_s函数或者用#define _CRT_SECURE_NO_WARNINGS

建议:不用vs提供的scanf_s函数,跨平台编译会出错。

假期结束,下次为大家带来如何让#define _CRT_SECURE_NO_WARNINGS长存于每一个源文件和其他C语言知识。











特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线
下一篇
函数的初步认识及注意 2023-02-13 05:05:31