C库函数详解(二)

本文介绍了C语言中常用的输入输出函数,如clearerr(),fclose(),fgets()等,以及ANSI标准的动态存储分配函数如calloc(),malloc(),free(),realloc()的使用方法和原型。
摘要由CSDN通过智能技术生成

3.输入输出函数

凡用以下的输入输出函数,应该使用#include把stdio.h头文件包含到源程序文件中。

函数名

函数原型

功 能

返回值

包含文件

clearerr

void clearerr(FILE*fp);

使fp所指文件的错误,标志和文件结束标志置0。

close

int close (int fp):

关闭文件。

关闭成功返回0,

不成功,返回一1。

非ANSI标准

creat

int creat ( char filename,int mode);

以mode所指定的方式建立文件。

成功则返回正数,否则返回一1.

非ANSI标准

eof

inteof (int fd);

检查文件是否结束。

遇文件结束,返回1:否则返回0。

非ANSI标准

fclose

int fclose (FILE fp);

关闭fp所指的文件,释放文件缓冲区。

有错则返回非0,否则返回0.

feof

int feof(FILE fp);

检查文件是否结束。

遇文件结束符返回非零值,否则返回0。

fgete

int fgetc (FILE* fp);

从fp所指定的文件中取得下一个字符。

返回所得到的字符。若读人出错,返回EOF。

fgets

char*fgets(char*buf,

int n, FILE*fp);

从fp指向的文件读取一个长度为(n-1)的字符串,存人起始地址为buf的空间。

返回地址 buf,若遇文件结束或出错,返回NULL.

fopen

FILE*fopen(char * filename,char* mode);

以mode指定的方式打开名为filename 的文件。

成功,返回一个文件指针(文件信息区的起始地址),否则返回0.

fprintf

int fprintf(FILE *fp, char* format,args....);

把args 的值以format指定的格式输出到fp所指定的文件中。

实际输出的字符数

fputc

int fputc(char ch,FILE *fp);

将字符 ch 输出到fp指向的文件中。

成功,则返回该字符:否则返回非0.

fputs

Int fputs ( char*str,FILE *fp);

将str 指向的字符串输出到fp所指定的文件。

返回0.若出错返回非0。

fread

int fread (char *pt,unsigned size,unsigned n,FILE* fp);

从fp所指定的文件中读取长度为size的n个数据项,存到pt 所指向的内存区

返回所读的数据项个数,如遇文件结束或出错返回0.

fscanf

int fscanf (FILE* fp, char format, args,...);

从fp指定的文件中按format给定的格式将输入数据送到args所指向的内存单元(args是指针)。

已输入的数据个数。

fseek

int fseek(FILE*fp,long offset, int base);

将fp所指向的文件的位置指针移到以 base所指出的位置为基准、以offset为位移量的位置。

返回当前位置,否则,返回-1。

fell

long ftell(FILE*fp);

返回fp所指向的文件中的读写位置

返回fp所指向的文件中的读写位置。

fwrite

Int fwrite(char* ptr,unsigned size,unsigned n,FILE*fp);

把 ptr所指向的n*size 个字节输出到fp所指向的文件中

写到fp文的数据项的个数。

getc

int getc (FILE*fp);

从fp所指向的文件中读入一个字符。

返回所读的字符,若文件结束或出错,返回EOF.

getchar

 int getchar(void);

从标准输入设备读取下一个字符

所读字符,若文件结束或出错,则返回-1.

getw

int getw (FILE*fp);

从fp所指向的文件读取下一个字(整数)。

输入的整数,如文件结束或出错,返回-1.

非ANSI标准函数

open

int open (char. filename. int mode);

以mode 指出的方式打开已存在的名为filename的文件。

返回文件号(正数),如打开失败,返回-1.

非ANSI标准函数

printf

Int printf (char*format,args,...);

按format指向的格式字符串所规定的格式,将输出表列args的值输出到标准输出设备。

输出字符的个数,若出错,返回负数。

format可以是一个字符串,或字符数组的起始地址

putc 

int putc ( int ch, FILE *fp);

把一个字符ch 输出到fp所指的文件中。

输出的字符ch。若出错,返回EOF.

putchar

int putchar ( char ch);

把字符ch输出到标准输出设备

输出的字符ch。若出错,返回EOF.

puts

int puts ( char* str);

把 str指向的字符串输出到标准输出设备,将'\0’转换为回车换行。

返回换行符,若失败,返回EOF.

putw

int putw(int w,FILE*fp);

将一个整数 w(即一个字)写到fp指向的文件中。

返回输出的整数。若出错,返回EOF。

非ANSI标准函数

read

int read (int fd, char* buf, unsigned count);

从文件号fd所指示的文件中读 count 个字节到由buf指示的缓冲区中。

返回真正读入的字节个数。如遇文件结束返回0,出错返回-1。

非ANSI标准函数

rename

int rename (char*oldname,char*newname);

把由 oldname所指的文件名,改为由newname所指的文件名。

成功返回0,

出错返回一1。

rewind

void rewind (FILE*fp);

将fp指示的文件中的位置指针置于文件开头位置,并清除文件结束标志和错误标志。

scanf  

Int scanf (char*format,args,...);

从标准输入设备按format指向的格式字符串所规定的格式,输入数据给args所指向的单元。

读入并赋给args的数针。遇文件结束返回EOF,出错返回0.

args为指针.

int write (int fd,char * buf, unsigned count);

从 buf 指示的缓冲区输出count 个字符到fd所标志的文件中。

返回实际输出的字节数。如出错返回一1。

非ANSI标准函数

4.动态存储分配函数

ANSI标准建议设4个有关的动态存储分配的函数,即calloc()、malloc()、free()、realloc()。实际上,许多C编译系统实现时,往往增加了一些其他函数。ANSI标准建议在“stdlib.h”头文件中包含有关的信息,但许多C编译要求用“malloc.h”而不是"stdlib.h”。

ANSI标准要求动态分配系统返回void指针。void 指针具有一般性,它们可以指向任何类型的数据。但目前有的C编译所提供的这类函数返回char 指针。无论以上两种情况的哪一种,都需要用强制类型转换的方法把void 或char指针转换成所需的类型。

函数名

函数原型

功 能

返回值

calloc

void* calloc (unsigned n,unsigned size);

分配n个数据项的内存连续空间,每个数据项的大小为size。

分配内存单元的起始地址。如不成功,返回0。

free

void free(void *p);

释放p所指的内存区。

malloc

void * malloc ( unsigned size);

分配 size 字节的存储区。

所分配的内存区起始地址,如内存不够,返回0。

realloc

void* realloc ( void *p,unsigned size );

将p所指出的已分配内存区的大小改为size.size可以比原来分配的空间大或小。

返回指向该内存区的指针。

  • 35
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阳光向日葵之沈阳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值