linux C 打印错误信息和标准输入输出详细介绍
Linux 使用strerror 和 perror 函数来打印响应的错误信息 ,这两个函数的标准调用格式说明如下:
#include<string.h> char *strerror(int errnum) #include<stdio.h> void perror(const char *msg)
strerror函数的返回值是一个指向消息字符串的指针,这个消息字符串即为出错信息的字符串
perror函数没有返回值,其输出如下:
“由msg指针指向的字符串” + “:” + errno + “回车换行”
#include<stdio.h> #include<string.h> #include<errno.h> int main(int argc, char *argv[]) { printf("EACCES:%s\n", strerror(EACCES));//打印没有权限错误信息 errno = EHOSTDOWN;//EHOSTDOWN 服务器关闭 perror(argv[0]); return 0; }
标准输入输出函数
标准输出函数
printf函数用于将格式化数据输出,其标准调用格式如下:
#include<stdin.h> printf(const char *format, …);
其参数是format是一个字符串,包含字符,字符序列,和格式说明,其中字符部分与字符序列按顺序输出,而格式说明以”%”开始,格式说明是跟随的相同序号数据按格式说明转换和输出.
printf函数的格式说明结构为:%flags_width.precicion_{b|B|l|L}_type
type:用来说明参数是字符串,字符,数字或者指针字符
printf函数的type参数
type | 输出结果 |
---|---|
D | 有符号十进制数 |
U | 无符号十进制数 |
O | 无符号八进制数 |
x | 无符号十六进制数,使用小写 |
X | 无符号十六进制数,使用大写 |
f | 格式为[-]ddd.ddd的浮点数 |
e | 格式为[-]ddde+dd的浮点数 |
E | 格式为[-]dddE+dd的浮点数 |
g | 使用f或者e中比较合适形式的浮点数 |
G | 使用f或者E中比较合适形式的浮点数 |
c | 单字符常数 |
s | 字符串常数 |
p | 指针 |
n | 无输出但在下一参数所指整数中写入字符串 |
% | ”%”字符 |
b,B,l,L用于type之前,说明整型d,i,u,o,x,X的char或者long转换
flags是标志
printf函数flags参数
flags | 作用 |
---|---|
- | 左对齐 |
+ | 有符号,数值总是以正负号开始 |
空格 | 数字总是以符号或者空格开始 |
* | 忽略 |
width是域宽
precision精度,对于不同类型的意义不同,可能引起结尾或者舍入
printf函数的precision精度
数据类型 | 说明 |
---|---|
d,u,o,x,X | 输出数字的最小位,输出数字超出也不截断尾 ,如果超出在左边,则填入0 |
f,e,E | 输出数字的小数位,末位四舍五入 |
g,G | 输出数字的有效位 |
c,p | 无影响 |
s | 输出字符的最大字符数,超出部分将不显示 |
标准输入函数
scanf函数用于用户向程序输入数据,其调用格式如下:
#include<stdin.h> scanf(const char *format,...)
示例:
#include<stdio.h> int main(int argc,char *argv[]) { char str[30]; printf("输入一个字符串\n"); scanf("%s", str);//输入一个字符串 printf("str=%s\n",str);//打印字符串 int a = -128; printf("%d\n", a);//打印有符号整数 printf("%u\n", a);//打印无符号整数 int b = 10; printf("%x\n", b);//打印16进制数,小写 printf("%X\n", b);//打印16进制数,大写 float c = 1.221121; printf("%f\n", c);//打印浮点数 printf("%-.3f\n", c);//打印有效位数为3,左对齐的浮点数 return 0;
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
相关文章
- 网上文章中,在linux下安装node.js都是使用源码编译,其实node的github上已经提供了各个系统下使用各自的包管理器(package manager)安装node.js的方法。...2015-03-15
- grep命令是Linux系统中最重要的命令之一,功能是从文本文件或管道数据流中筛选匹配的行和数据,如果再配合正则表达式,功能十分强大,是Linux运维人员必备的命令,这篇文章主要介绍了Linux中grep详解,需要的朋友可以参考下...2023-02-15
Linux安装Pytorch1.8GPU(CUDA11.1)的实现
这篇文章主要介绍了Linux安装Pytorch1.8GPU(CUDA11.1)的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-25- 这篇文章主要介绍了linux服务器快速卸载安装node环境(简单上手),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-22
- 这篇文章主要介绍了Linux 下使用shell脚本定时维护数据库,本文通过案例分析给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-07-11
- 这篇文章主要介绍了Linux环境变量配置全攻略,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-03-31
Linux下升级安装python3.8并配置pip及yum的教程
这篇文章主要介绍了Linux下升级安装python3.8并配置pip及yum的教程,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-05-02- 这篇文章主要介绍了Linux下安装mysql8.0.20的教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-05-25
- 这篇文章主要为大家详细介绍了linux下源码安装mysql5.6.20教程的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2017-01-15
- 这篇文章主要介绍了使用BindingResult 自定义错误信息,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-10-23
- 这篇文章主要介绍了Linux zabbix agent部署及配置方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-08-21
- 这篇文章主要介绍了Linux环境下nginx搭建简易图片服务器,需要的朋友可以参考下...2016-01-27
- 这篇文章主要介绍了Linux下统计当前文件夹下的文件个数、目录个数,本文使用ls命令配合管理、grep命令实现统计需求,需要的朋友可以参考下...2020-07-11
- 这篇文章主要为大家详细介绍了Linux CentOS MySQL数据库的安装配置教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2017-05-19
- 这篇文章主要介绍了linux网络配置工具的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-03-31
如何解决Linux下Too many open files问题
Too many open files是Linux系统中常见的错误,从字面意思上看就是说程序打开的文件数过多,不过这里的files不单是文件的意思,也包括打开的通讯链接(比如socket),正在监听的端口等等,所以有时候也可以叫做句柄(handle),这个错误通常也可以叫做句柄数超出系统限制。...2021-06-01- 这篇文章主要介绍了Linux下常用压缩格式的压缩与解压方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-07-11
Linux下semop等待信号时出现Interrupted System Call错误(EINTR)解决方法
本篇文章是对在Linux下semop等待信号时出现Interrupted System Call错误(EINTR)的解决方法进行了详细的分析介绍,需要的朋友参考下...2020-04-25- 这篇文章主要为大家详细介绍了linux上mysql安装详细教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2017-02-08
Fedora14 Linux系统安装Golang开发环境笔记
这篇文章主要介绍了Fedora14 Linux系统安装Golang开发环境笔记,本文讲解了2种安装方法,需要的朋友可以参考下...2020-05-01