c语言直接退出程序_C/C++编程笔记:C语言错误处理方法!如何更好地处理程序的错误?...
C语言被忽视的一些小东西!C语言基础教程之错误处理。
C 语言不提供对错误处理的直接支持,但是作为一种系统编程语言,它以返回值的形式允许您访问底层数据。在发生错误时,大多数的 C 或 UNIX 函数调用返回 1 或 NULL,同时会设置一个错误代码errno,该错误代码是全局变量,表示在函数调用期间发生了错误。您可以在 errno.h 头文件中找到各种各样的错误代码。
所以,C 程序员可以通过检查返回值,然后根据返回值决定采取哪种适当的动作。开发人员应该在程序初始化时,把 errno 设置为 0,这是一种良好的编程习惯。0 值表示程序中没有错误。
errno、perror() 和 strerror()
C 语言提供了perror()和strerror()函数来显示与errno相关的文本消息。
perror()函数显示您传给它的字符串,后跟一个冒号、一个空格和当前 errno 值的文本表示形式。
strerror()函数,返回一个指针,指针指向当前 errno 值的文本表示形式。
让我们来模拟一种错误情况,尝试打开一个不存在的文件。您可以使用多种方式来输出错误消息,在这里我们使用函数来演示用法。另外有一点需要注意,您应该使用stderr文件流来输出所有的错误。
当上面的代码被编译和执行时,它会产生下列结果:
错误号: 2
通过 perror 输出错误: No such file or directory
打开文件错误: No such file or directory
被零除的错误
在进行除法运算时,如果不检查除数是否为零,则会导致一个运行时错误。为了避免这种情况发生,下面的代码在进行除法运算前会先检查除数是否为零:
当上面的代码被编译和执行时,它会产生下列结果:除数为 0 退出运行...
程序退出状态
通常情况下,程序成功执行完一个操作正常退出的时候会带有值 EXIT_SUCCESS。在这里,EXIT_SUCCESS 是宏,它被定义为 0。
如果程序中存在一种错误情况,当您退出程序时,会带有状态值 EXIT_FAILURE,被定义为 -1。所以,上面的程序可以写成:
当上面的代码被编译和执行时,它会产生下列结果:
quotient 变量的值为 : 4
学习C/C++编程知识,想要成为一个更加优秀的程序员,或者你学习C/C++的时候有难度,可以关注+私信小编【C/C++编程】笔者的C语言C++零基础编程学习圈,里面不仅有学习视频和文件资料,还有更多志同道合的朋友,欢迎转行也学习编程的伙伴,和大家一起交流成长会比自己琢磨更快哦!
c语言直接退出程序_C/C++编程笔记:C语言错误处理方法!如何更好地处理程序的错误?...相关推荐
- c++ 动态分配数组_C/C++编程笔记:「C语言指针」民间解读版本
相信很多同学在初学C语言时候,都会遇到遇到一个问题:指针,永远的神! 好消息,这个痛点将会在这篇文章得到解决,妈妈再也不用担心我的学习了! 一说指针,第一反应,指针是一种数据类型. c语言学习,重点就 ...
- c++ 小游戏_C/C++编程笔记:C语言写推箱子小游戏,大一学习C语言练手项目
C语言,作为大多数人的第一门编程语言,重要性不言而喻,很多编程习惯,逻辑方式在此时就已经形成了.这个是我在大一学习 C语言 后写的推箱子小游戏,自己的逻辑能力得到了提升,在这里同大家分享这个推箱子小游 ...
- c语言求阶乘和的流程图_C/C++编程笔记:C语言 rand() 随机函数,深入解析程序随机数!...
各种编程语言返回的随机数(确切地说是伪随机数)实际上都是根据递推公式计算的一组数值,当序列足够长,这组数值近似满足均匀分布. C的标准函数库提供一随机数生成器rand(定义在stdlib.h),能返回 ...
- visual c++ 6.0原版_C/C++编程笔记:C语言函数指针的理解与使用,就是这么简单明了!...
1.函数指针的定义 顾名思义,函数指针就是函数的指针.它是一个指针,指向一个函数.看例子: 看看上面三个表达式分别是什么意思? C)这很容易,fun3是函数名,p1,p2是参数,其类型为char *型 ...
- c++for循环求最大公约数_C/C++编程笔记:C语言 for 循环精讲!实例讲解带你吃透...
在循环入口处定义循环三要素,循环条件为真时执行循环体,先判断再循环. 语法 C++中 for 循环的语法为: for (init; condition; increment) { statement( ...
- c 获取char*的长度_C/C++编程笔记:C语言字符串比较函数,超详细,值得收藏!...
前方干货准备!!! void *memset(void *dest, int c, size_t count); 将dest前面count个字符置为字符c. 返回dest的值. void *memmo ...
- status c语言_C/C++编程笔记:C语言编程风格个人总结,初学小白可借鉴
总结一下我个人的编程风格及这样做的原因吧,其实是为了给实验室写一个统一的C语言编程规范才写的.首先声明,我下面提到的编程规范,是自己给自己定的,不是c语言里面规定的. 一件事情,做成和做好中间可能隔了 ...
- c++入门代码_C/C++编程笔记:C语言入门题之正倒金字塔,正反三角形代码详解
其实学编程关键是学习其思想,如果你精通了一门,再去学其他的时候也很容易上手.C不会过时的,尤其是在unix.linux操作平台上,学好C是必须的. C跟C++在很多方面也是兼容的,c是c++的基础. ...
- c 获取char*的长度_C/C++编程笔记:C语言字符串比较函数,超详细,值得收藏
void *memset(void *dest, int c, size_t count); 将dest前面count个字符置为字符c. 返回dest的值. void *memmove(void *d ...
最新文章
- subplot subplots绘制子图
- Java实现二维码QRCode的编码和解码
- leetcode算法题--机器人的运动范围
- java创建对象的过程_Java创建对象的过程
- 十六、深入Python字符串
- python计算定积分_python编程通过蒙特卡洛法计算定积分详解
- ActiveMQ专题2: 持久化
- 【ElasticSearch 学习笔记】Java API
- [VB]BMP转JPG
- mysql 5.7 多线程主从复制_Mysql 5.7从节点配置多线程主从复制的方法详解
- Scrum Meeting---Ten(2015-11-5)
- 阿里云服务器如何快速搭建Docker环境
- Android使用google breakpad之minidump_stackwalk
- Win10系统解决图片打开方式没有照片查看器
- mysql健康档案管理系统_益康居民健康档案管理系统(网络版)
- 面对疫情,大学生如何保持良好的心理状态
- VC++ 中主线程等待子线程结束的方法
- PyCharm中的问题记录:failed to sync ide settings. click to sync
- 根据json 动态生成页面——问卷页面
- linux打开笔记本摄像头
热门文章
- java positive,Java DecimalStyle withPositiveSign()用法及代码示例
- 自制导纳信号发生器 [原创cnblogs.com/helesheng]
- 排序之快速排序(递归)
- Redis在CentOS 7上的安装部署
- Android 核心组件 Activity 之上
- SharePoint 2013连接非默认端口的SQL Server
- oracle修改用户密码
- 杂谈--穷人和富人的区别(觉得很有道理,需要反思自己的日常行为)
- lamda表达式修改数据_正则表达式学习教程
- windows下release模式调试某行代码无法中断