C标准输入输出介绍
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
位置移动,或从末尾移动。
long ftell (FILE *fp) //返回当前读写位置
非格式化输入输出
字符串输入输出
char *fgets (char *s, int n, FILE *fp) //从指定文件读一行字符到缓冲区中。s为 缓冲区首地址,n为读取字符的字数。
返回的三种情况:
(1): 已经读取到了n-1个字符 (2): 读取到回车符 (3):读到了文件末尾
size_t fwrite(void *ptr, size_t size, size_t n, FILE *fp) //将缓冲区的数据写 入到文件中,函数的返回值为实际写出的数据项个数,如果写入过程中出错, 返回值小于n.
格式化输出
输出函数
int fprintf (FILE *fp, const *format,…) //按照指定的格式向文件中输出信息。 int printf (const char *format,….) 该函数等价于: int fprintf (stdout, const char *format,….)
int setlinebuf (FILE *fp) = setvbuf (FILE *fp, NULL, _IOLBF, 0);
非格式化输入输出
单个字节输入输出
int fgetc (FILE *fp) //从指定文件读一个字节;
int getchar()
//从标准输入读一个字节,等价于 int fgetc(stdin);
标准输入输出
2010.6.3
Fra Baidu bibliotek
标准输入输出的基本操作
文件控制结构FILE.
三个比较特殊的文件
➢ 标准输入文件(stdin):一般为键盘 ➢ 标准输出文件(stdout):一般为显示器 ➢ 标准错误输出文件(stderr):一般为显示器
标准输入输出的基本操作
文件打开
File*fopen (const char *filename, const char *modes)
指定输出长度
m.n 的形式可以指定输出数据的长度,m为输出数据的总字符长度,n为输出数据小数部分的长度
double x=0.123; printf(“%9.4f\n”,x); 输出结果如下:
0.1230
int x=123 printf(“%8d\n”,x); 输出结果如下:
123
char c[ ] = “ABCD” printf(“%5.3s\n”,a); 输出结果如下:
输出格式
%[+/-][0][m.n][l]转换字符
格式化输出格式
转换字符
d(10整数),o(8整数),x(16整数),u(无符号整数),c(单个字符),s(字符串), e(指数形式的浮点数),f(小数形式的浮点数),g (e和f中较短的一种),%(百分号)
指定输出精度
加字母l, 表示输出长整型或双精度浮点型。
int fputc(int c, FILE *fp) //向指定文件写入一个字节
int putchar(int c)
// 向标准输出写一个字节,等价int fputc(c, stdout)
定位函数
void rewind(FILE *fp)
//将文件的读写位置移至文件的开头
int fseek (FILE *fp, long offset, int whence) //参数whence的值可以是 0(SEEK_SET),1(SEEK_CUR),2(SEEK_END), 分别表示从文件开头移动,从当前
ABC
格式化输出格式
空位填零
只在输出数值时有效,指定时,不使用的输出位置填0,没有指定则空白。
int x =123; printf(“%06d\n”,x); 输出结果如下: 000123
r+
读和写,文件必须存在
w+ 读和写,如果文件不存在则创建,如果文件存在则替换
a+
读和追加,如果文件不存在则创建新文件
.
文件关闭
int fclose (FILE *fp)
标准输入输出的基本操作
缓冲区刷新
int fflush (FILE*fp);
//将缓冲区中的数据写入到磁盘文件或输出到用户终端,同时清空缓冲区
int fputs (const char *s, FILE *fp) //向指定的文件写入一个字符串,s为指向 字符串的指针,或字符串的常量。
int feof (FILE *fp) //测试是否读到文件末尾
非格式化输入输出
数据块输入输出
size_t fread (void *ptr, size_t size, size_t n, FILE *fp) //从文件fp中读取 size*n个字节,该函数的返回值为实际读取的数据个数,ptr 为缓冲区的首地 址,size 为要读取的数据项的长度,n为要读取的数据项的个数。
filename: 要打开的文件名,可以是文件名字字符串的首地址,也可以是双引号引起来的文件名字字符串
modes: 打开方式,使用时用双引号引起来。文件打开成功,返回文件指针,失败则返回NULL.
参数
说明
r
只读,文件必须存在
w
只写,如果文件不存在则创建,如果文件存在则替换
a
在文件末尾追加,如果文件不存在则创建新文件
int fpurge (FILE*fp); //将缓冲区的数据直接清除,包括尚未读取或写入的数据。
缓冲区属性设置
int setvbuf (FILE *fp, char *buf, int mode, size_t size); //参数fp指向已经打开的文件;buf为用 户设定的缓冲区;mode为缓冲区的类型,可以去_IOFBF,_IOLBF或_IONBF,分别表示全缓冲,行 缓冲或无缓冲;size为缓冲区的大小。
int setbuf (FILE *fp, char *buf); = setvbuf (FILE *fp, char *buf, buf ? _IOFBF : _IONBF, BUFSIZE);
int setbuffer (FILE *fp, char *buf, size_t size) = setvbuf (FILE *fp, char *buf, buf ? _IOFBF : _IONBF, size_t size);
long ftell (FILE *fp) //返回当前读写位置
非格式化输入输出
字符串输入输出
char *fgets (char *s, int n, FILE *fp) //从指定文件读一行字符到缓冲区中。s为 缓冲区首地址,n为读取字符的字数。
返回的三种情况:
(1): 已经读取到了n-1个字符 (2): 读取到回车符 (3):读到了文件末尾
size_t fwrite(void *ptr, size_t size, size_t n, FILE *fp) //将缓冲区的数据写 入到文件中,函数的返回值为实际写出的数据项个数,如果写入过程中出错, 返回值小于n.
格式化输出
输出函数
int fprintf (FILE *fp, const *format,…) //按照指定的格式向文件中输出信息。 int printf (const char *format,….) 该函数等价于: int fprintf (stdout, const char *format,….)
int setlinebuf (FILE *fp) = setvbuf (FILE *fp, NULL, _IOLBF, 0);
非格式化输入输出
单个字节输入输出
int fgetc (FILE *fp) //从指定文件读一个字节;
int getchar()
//从标准输入读一个字节,等价于 int fgetc(stdin);
标准输入输出
2010.6.3
Fra Baidu bibliotek
标准输入输出的基本操作
文件控制结构FILE.
三个比较特殊的文件
➢ 标准输入文件(stdin):一般为键盘 ➢ 标准输出文件(stdout):一般为显示器 ➢ 标准错误输出文件(stderr):一般为显示器
标准输入输出的基本操作
文件打开
File*fopen (const char *filename, const char *modes)
指定输出长度
m.n 的形式可以指定输出数据的长度,m为输出数据的总字符长度,n为输出数据小数部分的长度
double x=0.123; printf(“%9.4f\n”,x); 输出结果如下:
0.1230
int x=123 printf(“%8d\n”,x); 输出结果如下:
123
char c[ ] = “ABCD” printf(“%5.3s\n”,a); 输出结果如下:
输出格式
%[+/-][0][m.n][l]转换字符
格式化输出格式
转换字符
d(10整数),o(8整数),x(16整数),u(无符号整数),c(单个字符),s(字符串), e(指数形式的浮点数),f(小数形式的浮点数),g (e和f中较短的一种),%(百分号)
指定输出精度
加字母l, 表示输出长整型或双精度浮点型。
int fputc(int c, FILE *fp) //向指定文件写入一个字节
int putchar(int c)
// 向标准输出写一个字节,等价int fputc(c, stdout)
定位函数
void rewind(FILE *fp)
//将文件的读写位置移至文件的开头
int fseek (FILE *fp, long offset, int whence) //参数whence的值可以是 0(SEEK_SET),1(SEEK_CUR),2(SEEK_END), 分别表示从文件开头移动,从当前
ABC
格式化输出格式
空位填零
只在输出数值时有效,指定时,不使用的输出位置填0,没有指定则空白。
int x =123; printf(“%06d\n”,x); 输出结果如下: 000123
r+
读和写,文件必须存在
w+ 读和写,如果文件不存在则创建,如果文件存在则替换
a+
读和追加,如果文件不存在则创建新文件
.
文件关闭
int fclose (FILE *fp)
标准输入输出的基本操作
缓冲区刷新
int fflush (FILE*fp);
//将缓冲区中的数据写入到磁盘文件或输出到用户终端,同时清空缓冲区
int fputs (const char *s, FILE *fp) //向指定的文件写入一个字符串,s为指向 字符串的指针,或字符串的常量。
int feof (FILE *fp) //测试是否读到文件末尾
非格式化输入输出
数据块输入输出
size_t fread (void *ptr, size_t size, size_t n, FILE *fp) //从文件fp中读取 size*n个字节,该函数的返回值为实际读取的数据个数,ptr 为缓冲区的首地 址,size 为要读取的数据项的长度,n为要读取的数据项的个数。
filename: 要打开的文件名,可以是文件名字字符串的首地址,也可以是双引号引起来的文件名字字符串
modes: 打开方式,使用时用双引号引起来。文件打开成功,返回文件指针,失败则返回NULL.
参数
说明
r
只读,文件必须存在
w
只写,如果文件不存在则创建,如果文件存在则替换
a
在文件末尾追加,如果文件不存在则创建新文件
int fpurge (FILE*fp); //将缓冲区的数据直接清除,包括尚未读取或写入的数据。
缓冲区属性设置
int setvbuf (FILE *fp, char *buf, int mode, size_t size); //参数fp指向已经打开的文件;buf为用 户设定的缓冲区;mode为缓冲区的类型,可以去_IOFBF,_IOLBF或_IONBF,分别表示全缓冲,行 缓冲或无缓冲;size为缓冲区的大小。
int setbuf (FILE *fp, char *buf); = setvbuf (FILE *fp, char *buf, buf ? _IOFBF : _IONBF, BUFSIZE);
int setbuffer (FILE *fp, char *buf, size_t size) = setvbuf (FILE *fp, char *buf, buf ? _IOFBF : _IONBF, size_t size);