linux C 打印错误信息和标准输入输出详细介绍

所属分类: 软件编程 / C 语言 阅读数: 62
收藏 0 赞 0 分享

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;

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

更多精彩内容其他人还在看

利用C语言来求最大连续子序列乘积的方法

这篇文章主要介绍了利用C语言来求最大连续子序列乘积的方法,基本的思路以外文中还附有相关ACM题目,需要的朋友可以参考下
收藏 0 赞 0 分享

用C语言判断一个二叉树是否为另一个的子结构

这篇文章主要介绍了用C语言判断一个二叉树是否为另一个的子结构,是数据结构学习当中的基础知识,需要的朋友可以参考下
收藏 0 赞 0 分享

C语言实现的阶乘,排列和组合实例

这篇文章主要介绍了C语言实现的阶乘,排列和组合的方法,涉及C语言数学运算的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

C语言查找数组里数字重复次数的方法

这篇文章主要介绍了C语言查找数组里数字重复次数的方法,涉及C语言针对数组的遍历与判断技巧,具有一定参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

C语言简单实现计算字符个数的方法

这篇文章主要介绍了C语言简单实现计算字符个数的方法,涉及C语言针对字符串的简单遍历与判定技巧,具有一定参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

c实现linux下的数据库备份

本文给大家简单介绍下c实现linux下的数据库备份的方法和具体的源码,十分的实用,有需要的小伙伴可以参考下。
收藏 0 赞 0 分享

C++获得文件状态信息的方法

这篇文章主要介绍了C++获得文件状态信息的方法,包括文件状态信息、文件所在磁盘盘符、文件创建时间、访问时间及修改日期等,需要的朋友可以参考下
收藏 0 赞 0 分享

C语言按关键字搜索文件夹中文件的方法

这篇文章主要介绍了C语言按关键字搜索文件夹中文件的方法,涉及C语言文件操作及字符串查找的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

C语言之字符串模糊查询方法的实现

本篇文章主要为大家介绍字符串模糊查询的C语言程序编写方法,有需要的朋友可以参考下
收藏 0 赞 0 分享

C语言实现BMP转换JPG的方法

这篇文章主要介绍了C语言实现BMP转换JPG的方法,涉及C#图片格式转换的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多