ftell:返回当前文件指针位置函数
函数原型:long ftell(FILE *fp); 头文件:#include
函数功能:返回当前文件指针的位置。这个位置是指当前文件指针相对于文件开头的位移量。
返回值:返回文件指针的位置,若出错则返回–1L。 例程如下应用ftell返回文件指针位置。
#include
FILE *fp;
fp = fopen(\
/*按照格式要求将字符串写入文件*/ fprintf(fp, \
/*读出文件指针fp的位置*/
printf(\fclose(fp); return 0; }
例程说明:
(1)首先以写方式打开名为test.txt的文件,按照格式要求将字符串写入文件。注意:字符串共14个字符,地址为0~13。调用fprintf函数后,文件指针自动移到读入的最后一个字符的下一个位置,本例中就是文件的结束符,它的地址是14。 (2)应用ftell函数读出文件指针fp的位置。
注意:本题中ftell函数的返回值实际上就是该文件的长度。在实际的应用中,函数ftell常用来计算文件的长度。
fwrite:向文件写入数据函数
函数原型:int fwrite(void *buf, int size, int count, FILE *fp); 头文件:#include
函数功能:将buf所指向的count*size个字节的数据输出到文件指针fp所指向的文件中去。该函数与fread相对,输出数据后,文件指针fp自动指向输出的最后一个字符的下一个位置。该函数常用于分批将数据块输出到文件中。
返回值:返回实际写入文件数据项个数。
例程如下应用fwrite函数向文件中写入数据块。
#include
int main(void) {
FILE *fp;
struct exp_struct s;
/*以写的方式打开名为test.txt的文件*/ if ((fp = fopen(\ {
fprintf(stderr, \return 1; }
/*向结构体中的成员赋值*/
s.i = 0; s.ch = 'A';
/* 将一个结构体数据块写入文件 */ fwrite(&s, sizeof(s), 1, fp); fclose(fp); return 0; }
例程说明:
(1)程序先声明一个结构体类型struct exp_struct,这样一个结构体变量就是一个小数据块。
(2)再以写的方式打开名为test.txt的文件。 (3)然后向结构体中的成员变量赋值,并将赋值好的数据块应用fwrite函数写入fp 所指向的文件中。这里参数sizeof(s)是该结构体变量的大小,1指只写入文件1个数据块。 (4)最后关闭该文件。
getc:从流中读取字符函数
函数原型:int getc(FILE *fp); 头文件:#include
返回值:返回所读的字符,若文件结束或出错返回EOF。 例程如下应用getc函数从标准输入文件中读取一个字符。
#include
char ch;
printf(\
/* 从标准输入文件中读取一个字符 */ ch = getc(stdin); /*显示该字符*/
printf(\return 0; }
例程说明:
本程序是从标准输入文件(键盘)中读取一个字符,存入变量ch,并显示在屏幕上。 例程如下应用getc函数从一般文件中读取字符。
#include
FILE *fp;
char ch;
/*以写的方式打开名为test.txt的文件*/ fp=fopen(\ /*写入字符串*/
fprintf(fp,\fclose(fp);
/*再以读的方式打开名为test.txt的文件*/ fp=fopen(\
/*将文件指针指向文件开头*/
fseek(fp,0L,SEEK_SET);
/*应用getc函数从文件中循环读取字符并显示出来*/ while(feof(fp)==0) {
ch=getc(fp); printf(\ }
fclose(fp); return 0; }
例程说明: (1)首先以写的方式打开名为test.txt的文件,并将字符串\写入字符串。 (2)再以读的方式打开名为test.txt的文件,并将文件指针指向文件开头。
(3)最后,应用getc函数从文件中循环读取字符,直到文件结束为止,并将读取的字符显示到终端屏幕。
注意:本例程与上例不同,上例是从标准输入文件(键盘)中读取一个字符,本例是从一般文件中读取字符,关键在于函数的参数不同。
gets:从标准输入文件中读取字符串函数
函数原型:char *gets(char *buf); 头文件:#include
函数功能:从标准输入文件stdin(键盘)中读取一个字符串,并把该字符串存入以buf为首地址的缓冲区中。该函数与fgets类似,但它只能从标准输入文件stdin中读取字符串,而且没有长度限制。
返回值:返回其参数,即缓冲区指针buf,若出错则返回空NULL。 例程如下应用gets函数从键盘读取字符串。
#include
char string[30];
printf(\
/*从终端输入字符串,注意不要超过30个字符*/ gets(string);
/*显示该字符串*/
printf(\return 0; }
例程说明:
(1)首先,程序开辟一个可容纳30个字符的字符串数组空间,并在屏幕上提示用户输入一个字符串。
(2)应用gets函数接收键盘输入的字符串,并把它存储到以string为首地址的缓冲区中。
(3)最后,将以string为首地址的缓冲区中的内容显示出来,即在屏幕上显示输入的字符串。
perror:打印系统错误信息函数
函数原型:void perror(char *string); 头文件:#include
函数功能:将错误信息输出到标准出错输出stderr。该函数的参数是字符串指针,指向错误信息字符串。也可以就是一个字符串,直接在参数中输入要显示的错误信息。但要注意,完整的错误信息不仅包括用户在参数中自己定义的字符串,还包括一个冒号,系统报错信息,和一个换行符。该函数主要用作向终端进行错误提示。
返回值:无。
例程如下应用perror函数显示错误信息。
#include
FILE *fp;
/*企图以读的方式打开文件test.txt*/ fp = fopen(\if (fp==NULL)
/*该文件不存在,在终端显示错误信息*/ perror(\ return 0; }
例程说明:
(1)首先程序企图以读的方式打开文件test.txt,但在这里该文件并不存在。 (2)然后,利用函数perror在终端显示错误信息\file or directory\。
具体的运行结果格式如下:
Unable to open file for reading: No such file or directory
注意:完整的错误信息包括:用户自定义字符串,冒号,系统报错信息,换行符。
printf:产生格式化输出的函数
函数原型:int printf( const char *format [, argument]... ); 头文件:#include
函数功能:按format指向的格式字符串所规定的格式,将输出表列argument的值输出到标准输出设备。该函数与fprintf类似,但只能将argument的值输出到标准输出设备stdout,即显示器屏幕,而不能输出到用户自定义的文件中。
返回值:输出字符的个数,若出错则返回一个负数。 例程如下应用printf函数输出字符串。
#include
int a=1; char ch='r';
char str[]=\printf(\printf(\
printf(\printf(\return 0; }
例程说明:
(1)首先在标准输出设备stdout,即显示器屏幕上打印出\。 (2)再打印出字符串str中的内容:\。 (3)再打印出整型数a:The integer is 1。 (4)再打印出字符ch:The character is r。
putc:向指定流中输出字符函数
函数原型:int putc(int ch, FILE *fp); 头文件:#include
函数功能:向指定的文件输出一个字符。该函数有两个参数,ch是用户指定的字符,fp是文件指针。函数将字符ch输出到fp指定的文件中。
返回值:返回输出的字符ch,若出错则返回EOF。 例程如下应用putc函数向标准输出文件输出字符。
#include
char str[] = \int i = 0; while (str[i]){
putc(str[i], stdout); i++; } return 0; }
例程说明:
(1)首先将字符串\存入字符串数组str中。
(2)循环地将数组str中的内容输出到标准输出文件(显示器)上。 例程如下应用putc函数向用户自定义文件输出字符。
#include
FILE *fp; int i = 0;