putc函数:第一个参数是待写入的字符,第二个参数是文件指针,putc(ch,stdout)与putchar(ch)相同
而ch = getc(fp)是指从getc指定的文件fp中获取一个字符给ch
fputs是一种函数,具有的功能是向指定的文件写入一个字符串。成功写入一个字符串后,文件的位置指针会自动后移,函数返回为一个非负整数;否则返回EOF(符号常量,其值为-1)。
fgets()函数: 第一个参数表示储存输入位置的地址(char*)类型,第二个参数是一个整数,表示待输入字符串的大小。最后一个参数是文件指针,指定待读取的文件
fgets(buf,strlen,fp),buf是char类型数组的名称,strlen是字符串的大小,fp是指向FILE的指针 ,需要注意的是fgets()在字符串中保留换行符
该函数读取输入的特点:>fgets()函数读取输入直到第一个换行符的后面,或读到文件结尾,或者读取strlen-1个字符,然后fgets()在末尾添加一个空字符使之成为一个字符串。字符串的大小是其字符加上一个空字符。
随机访问:fseek()与ftell()
有了fseek函数,就可以把文件看作是数组,在fopen()打开的文件中直接移动到任意字节处。
fseek()有3个参数,第一个参数是FILE指针,指向待查找的文件。 注意此时fopen()应该已打开该文件
第二个参数是偏移量,该参数表示从起始点开始要移动的距离。该参数必须是一个long类型,可为正(前移),负(后移)或不动)
第三个参数是模式,该参数确定起始点。根据ANSI标准,在stdio.h头文件中规定了几个表示模式的明示常量:
SEEK_SET: 文件开始处
SEEK_CUR: 当前位置
SEEK_END: 文件末尾
旧的实现可能缺少这些定义,可以使用数值0L,1L,2L分别表示这三种模式。L后缀表示其是long类型。
以下是调用fseek()函数的一些实例,fp是一个文件指针:
fseek(fp,0L,SEEK_SET) //定义至文件开始处
fseek(fp,10L,SEEK_SET) //定位至文件中的第10个字节
fseek(fp,2L,SEEK_CUR) //从文件当前位置前移两个字节
fseek(fp,0L,SEEK_END) //定位至文件结尾
fseek(fp,-10L,SEEK_END) //从文件结尾处回退10个字节