格式化输入输出(一)printf、scanf系列

printf、fprintf、sprintf函数

​ printf系列函数能够对各种不同类型的参数进行格式编派和输出,每个参数在输出流中的表示形式由格式参数format控制,它是一个包含需要输出的普通字符和称为转换控制字符的字符串,转换控制符规定了其余的参数应该以何种方式被输出到何种地方。

#include"stdio.h"

int printf(const char *format);
int sprintf(char *s,const char *format );
int fprintf(FILE *stream,const char *format);

printf函数把自己的输出送到标准输出,fprintf函数把输出送到指定文件流,sprintf把自己输出和一个空字符传递到字符串s中,这个字符串必须满足能够容纳所有的输出数据。format是用来存储数据的值,而stream是指定文件流。下面是一些其他的转换控制符:

scanf、fscanf、sscanf函数

scanf系列函数和printf系列函数类似,作用是从文件流里读取数据,并把数据值放到以指针参数形式传递过来的地址处的变量中,它们也使用一个格式字符串控制输入数据的转换,它所使用的许多转换控制符和printf系列一样。

#include"stdio.h"

int scanf(const char *format);
int fscanf(FILE *stream,const char *format);
int sscanf(const char *s,const char *format)

scanf函数读入的值应该保存到对应变量中,变量类型必须正确,并且必须精度匹配格式字符串。否则,内存数据就可能会遭到破坏,从而使得程序崩溃。编译器不会报错。

  • %d:读取一个十进制整数;
  • %o、%x:读取一个八进制或十六进制的整数;
  • %f、%e、%g:读取一个浮点数;
  • %c:字符串,不会忽略空格;
  • %s:字符串;
  • %[]:读取一个字符集合。

​ 使用%[]控制符可以读取一个字符集合中的字符构成的字符串。格式字符串%[A-Z]将读取一个由大写字母构成的字符串。如果字符集中第一个字符^,表示将读取一个不属于该字符集合中的字符构成的字符串,例如读取一个带空格的字符串且在遇到第一个逗号停止的时候可以用%[^,]这种方式可以替换标准输入两个变量的输入方式

文件流错误

​ stdio库函数会返回一个超出范围的值,比如空指针或EOF常数。此时错误由外部变量errno指出

#include"errno.h"

extern int errno;

​ 需要注意的是errno的值必须在调用完函数立刻检查才有意义。

​ 或者可以通过检查文件流的状态确定是否发生了错误,或是否达到了文件尾。

#include"stdio.h"

int ferror(FILE *stream);		//测试文件流错误标识,如果该标识被设置就返回非0值,否则返回0
int feof(FILE *stream);			//测试文件流的文件尾标识
void clearerr(FILE *stream);	//清楚由stream执行的文件流的文件为标识和错误标识

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值