1 库函数-创建和打开
FILE *fopen(const char *filename,const char *mode)
*filename: 打开的文件名(包含路径,缺省为当前路径)
*mode: 打开模式
常见打开模式:
r, rb 只读方式打开
w, wb 只写方式打开,如果文件不存在,则创建该文件
a, ab 追加方式打开,如果文件不存在,则创建该文件
r+ ,r+b, rb+ 读写方式打开
w+,w+b,wh+ 读写方式打开,如果文件不存在,则创建该文件
a+,a+b,ab+ 读和追加方式打开,如果文件不存在,则创建该文件
b 用于区分二进制文件和文本文件,这一点在DOS、Windows系统中是有区别的,但是Linux不区分二进制文件和文本文件。
2 库函数-读
size_t fread(void *ptr, size_t size,size_t n, FILE *stream)
功能:
从stream指向的文件中读取n个字段,每个字段为size字节,并将读取的数据放入ptr所指向的字符数组中,返回实际已读取的字节数。
3 库函数-写
size_t fwrite(const void *ptr, size_t size, size_t n, FILE *stream)
功能:
从缓冲区ptr所指的数组中把n个字段写到stream指向的文件中,每个字段长为size个字节,返回世界写入的字段数。
4 库函数-读字符
int fgetc(FILE *stream)
从指定的文件中读一个字符
#include<stdio.h>
main()
{
FILE *fp
char ch;
if((fp=fopen(“c1.txt”,”rt”))= =NULL)
{
printf(“\nCannot open file strike any key exit!”);
getch();
exit(1);
}
ch=fgetc(fp);
while(ch != EOF)
{
putchar(ch);
ch=fgetc(fp);
}
fclose(fp);
}
5 库文件-写字符
int fputc(int c, FILE *stream)
向指定的文件写入一个字符。
6 库函数-格式化读
fscanf(FILE *stream ,char *format[, argument…])
从一个流中进行格式化输入
7 库函数-格式化写
int fprintf(FILE *stream, char* format[, argument,…])
格式化输出到一个流中
8 库函数-文件定位
int fseek(FILE *stream, long offset, int whence)
whence:
SEEK_SET从文件的开始处开始搜索
SEEK_CUR从当前位置开始搜索
SEEK_END从文件的结束处开始搜索
9 库函数-路径获取
在编写程序的时候,有时候需要得到当前路径。C库函数提供了getcwd来解决这个问题。
char * getcwd(char *buffer, size_t size)
我们提供一个size大小的buffer, getcwd会把当前的路径名copy到buffer中。如果buffer太小,函数会返回-1。
10 库函数-创建目录
#include<sys/stat.h>
Int mkdir(char *dir ,int mode)
功能:创建一个新目录。
返回值:0表示成功。-1表示出错。
11 库函数-读取字符串
fgets(由文件中读取一字符串,也可以从屏幕上输入一字符串,见范例。)
相关函数
open,fread,fscanf,getc
表头文件
include<stdio.h>
定义函数
char * fgets(char * s,int size,FILE * stream);
s,数据存储位置;size,读取字符串的最大数量;stream,指向FILE结构的指针。
函数说明
fgets()用来从参数stream所指的文件内读入字符并存到参数s所指的内存空间,直到出现换行字符、读到文件尾或是已读了size-1个字符为止,最后会加上NULL作为字符串结束。
返回值
fgets()若成功则返回s指针,返回NULL则表示有错误发生。
范例
#include<stdio.h>
int main(void)
{
char s[80];
fputs(fgets(s,80,stdin),stdout);
return 0;
}
执行
this is a test /*输入*/
this is a test /*输出*/
12 库函数-写入字符串
函数名: fputs
功 能: 送一个字符串到一个流中
用 法: int fputs(char *string, FILE *stream);
参数: string是要写入文件的字符串。
stream 很明显是一个FILE对象。
程序例:
#include <stdio.h>
int main(void)
{
FILE *fpout=fopen("1.txt","wr");//
/* write a string to standard output */
fputs("Hello world\n", fpout);
return 0;
}