常用C函数(7)

2019-03-27 19:34

char str[]=\fp=fopen(\while (str[i]){ putc(str[i], fp); i++; } fclose(fp); return 0; }

例程说明:

(1)首先将字符串\存入字符串数组str中。

(2)以写的方式打开一个名为\文件,并利用函数putc将数组str中的内容输出到文件\中。 (3)关闭文件。

注意:该函数既可以向标准输出文件输出字符,又可以向用户自定义文件输出字符。而且,每当向文件输出一个字符时,文件指针就会自动向后移一个字节。

putchar:向标准输出文件上输出字符

函数原型:int putchar(char ch); 头文件:#include 是否是标准函数:是

函数功能:将字符串ch输出到标准输出文件stdout上。也就是说将字符串ch输出到显示器屏幕上。

返回值:返回输出的字符ch,若出错,则返回EOF。 例程如下应用putchar函数在屏幕上显示字符。

#include int main() {

char str[]=\int i=0;

while(str[i]){ putchar(str[i]); i++; } }

例程说明:

(1)首先将字符串\存入字符串数组str中。

(2)应用putchar函数,循环地将字符串输出到标准输出文件(终端屏幕)上。 注意:该函数与putc函数不同,它只能向标准输出文件,也就是终端屏幕上输出字符。而putc函数既可以向标准输出文件上输出字符,又可以向一般用户自定义文件上输出字符。

puts:将字符串输出到终端函数

函数原型:int puts(char *string); 头文件:#include

是否是标准函数:是

函数功能:将string指向的字符串输出到标准输出设备(stdout),并将'\\0'转换为回车换行符'\\n'。在C语言中,字符串以’\\0’结尾。该函数不仅可以将字符串输出到标准输出设备,而且要将字符串的结束标志转换为回车换行。

返回值:成功则返回换行符,若失败则返回EOF。 例程如下应用puts函数向终端输出字符串。

#include int main(void) {

char string[] = \puts(string); return 0; }

例程说明:

(1)首先,将字符串\存入以string为首地址的缓冲区。 (2)应用puts函数将该字符串显示在标准输出设备上。 注意:该函数将字符串的结尾标志'\\0'转换为回车换行符'\\n'。因此,程序运行的结果为:

This is a test!

remove:删除文件函数

函数原型:int remove(char *filename); 头文件:#include 是否是标准函数:是

函数功能:删除以filename为文件名的文件。该函数的参数为欲删除文件的文件名,如果是单纯的文件名,就表明删除当前文件夹下的文件,否则要写明文件的路径。

返回值:成功删除文件返回0,否则返回-1。 例程如下应用remove函数删除文件。

#include void main() {

if( remove( \

perror( \else

printf( \}

例程说明:

(1)首先要在当前文件夹下建立文件test.txt。 (2)再利用remove函数删除该文件。若删除成功,则在终端显示字符串\\\n\,否则显示字符串\。

注意:前面已经讲过perror函数是按照一定格式要求向终端输出错误信息,因此,若删除文件成功,程序运行的结果为:

Deleted test.txt

若删除失败,则程序运行的结果为:

Could not delete test.txt!!: No such file or directory

这里,利用perror函数显示的完整的错误信息包括:用户自定义字符串,冒号,系统报错信息,换行符。

rename:重命名文件函数

函数原型:int rename(char *oldname, char *newname); 头文件:#include 是否是标准函数:是

函数功能:把由oldname所指的文件名改为由newname所指的文件名。该函数有两个参数,oldname为旧的文件名,newname为欲改成的新文件名。应当注意,oldname所指的文件一定要存在,newname所指的文件一定不存在。应用该函数可将一个文件的旧文件名oldname改为新文件名newname,但不能改变文件的路径。 返回值:成功返回0,出错返回-1。

例程如下应用rename函数重命名文件。

#include int main(void) {

if( rename(\printf(\else

printf(\}

例程说明:

(1)首先,在当前文件夹下建立一个文件\。

(2)应用rename函数重命名该文件,将其改名为\。若重命名成功,在屏幕上显示\提示字符串;否则显示\提示字符串。

rewind:重置文件指针函数

函数原型:void rewind(FILE *stream); 头文件:#include 是否是标准函数:是

函数功能:将文件指针fp重新定位在文件开头,并清除文件的结束标志和错误标志。该函数与函数fseek功能类似,但不同的是,该函数可以清除文件的结束标志和错误标志,而函数fseek不能;另外,该函数不能像函数fseek一样返回一个值表明操作是否成功,因为该函数无返回值。

返回值:无。

例程如下应用函数rewind重定位文件指针。

#include void main( void ) {

FILE *fp; int data1, data2; data1 = 1; data2 = 2;

if( (fp = fopen( \ {

fprintf( fp, \

printf( \ data1=0;

data2=0;

rewind( fp );

fscanf( fp, \

printf( \fclose( fp ); } }

例程说明:

(1)首先以写的方式打开一个名为\的文件。 (2)应用fprintf函数向该文件写入data1,data2两个整型数,其值分别为1,2。此时,文件指针fp已指向文件尾。

(3)在屏幕上显示这两个数。

(4)再将变量data1和data2置0。

(4)应用rewind函数重定位文件指针,将文件指针fp重新定位在文件开头。 (5)再应用fscanf函数向data1,data2两个变量中读入文件中的数字。 (6)在屏幕上显示这两个数。

注意:在应用fprintf函数向该文件写入data1,data2两个整型数后,文件指针fp会自动指向文件尾。只有再应用函数rewind、fseek才能将文件指针重新定位到文件开头,以便读取文件。本例中,将data1和data2置0的目的是为了说明应用fscanf函数向data1,data2两个变量中读入文件中的数字的结果是正确的。本程序的运行结果为:

The values written are: 1 and 2 The values read are: 1 and 2

scanf:格式化输入函数

函数原型:int scanf(char *format[,argument,...]); 头文件:#include 是否是标准函数:是

函数功能:从标准输入设备(键盘)按照format指定的格式字符串所规定的格式,将数据输入到argument所指定的内存单元。scanf函数与printf函数相对,前者是从标准输入设备输入数值,后者是从标准输出设备输出数值。

返回值:成功返回输入的字符个数,否则遇到结束符返回EOF,出错返回0。 例程如下应用scanf函数输入数据。

#include void main( void ) { int i; char ch; float f;

printf(\scanf(\getchar();

printf(\scanf(\getchar();

printf(\

scanf(\getchar();

printf(\}

例程说明:

(1)应用scanf函数向预先声明的三个变量空间输入一个整型数、一个字符、一个浮点数。

(2)在屏幕上显示这三个值。

注意:scanf函数与fscanf函数类似,但只能从标准输入设备文件读取数值,而不能像fscanf函数一样从一般用户自定义文件中读取数值。scanf函数常用作程序设计中数据的输入函数。

setbuf、setvbuf:指定文件流的缓冲区函数

函数原型:void setbuf(FILE *fp, char *buf); void setvbuf(FILE *fp, char *buf, int type, unsigned size); 头文件:#include 是否是标准函数:是

函数功能: 这两个函数使得打开文件后,用户可以建立自己的文件缓冲区,而不必使用fopen函数打开文件时设定的默认缓冲区。

setbuf函数的定义中,参数buf指定的缓冲区大小由stdio.h中定义的宏BUFSIZE的值决定,缺省值default为512字节。而当buf为NULL时,setbuf函数将使文件I/O不带缓冲区。而对setvbuf函数,则由malloc函数来分配缓冲区。参数size指明了缓冲区的长度(必须大于0),而参数type则表明了缓冲的类型,其取值如下表:

setvbuf函数中参数type的取值含义

type 值 _IOFBF _IOLBF _IONBF 含义 文件全部缓冲,即缓冲区装满后,才能对文件读写 文件行缓冲,即缓冲区接收到一个换行符时,才能对文件读写 文件不缓冲,此时忽略buf,size的值,直接读写文件,不再经过文件缓冲区缓冲 返回值:无。 例程如下应用setbuf函数指定文件的缓冲区。

#include void main( void ) {

char buf[BUFSIZ]; FILE *fp1, *fp2;

if( ((fp1 = fopen( \ ((fp2 = fopen( \ {

/* 应用setbuf函数给文件流fp1指定缓冲区buf */ setbuf( fp1, buf );

/*显示缓冲区地址*/

printf( \ /* 文件流fp2不指定缓冲区*/ setbuf( fp2, NULL );

/*信息提示不分配缓冲区*/


常用C函数(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:数据库系统原理参考答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: