在进行数据处理的时候,我们难免会遇到需要对文件中的数据进行处理,这时候就需要对文件进行操作。
fopen()
FILE *fopen(const char *filename, const char *mode);
- fiiename参数是需要打开的文件的名称。
- mode是指以什么的方式打开文件。如只读®, 只写(w)等。
- 返回值: 是一个文件指针, 如果文件不能打开或者错误则会返回NULL。所以在打开文件之后要判断是否成功打开文件,只有成功打开文件后才能对文件进行操作。
读取文件按中的数据
fscanf()
当文件中的每一行数据都是以空格或者Tab分割时,可以使用fscanf()去获取每一行的每一个字段的信息。
int fscanf(FILE * stream, const char * format, [argument…]);
-
FILE 文件指针(所读的文件的指针)。
-
format: 格式控制符。
-
argument 用于存储每一字段的变量。
-
整型,成功返回读入的参数的个数,失败返回EOF(-1)。
从一个流中执行格式化输入,fscanf遇到空格和换行时结束,注意空格时也结束。这与fgets有区别,fgets遇到空格不结束。
fgets
每次从文件中读取一行数据。
char *fgets(char *str, int n, FILE *stream);
- str 字符数组的指针。
- 读取的最大字符数,一般为sizeof(str); 当读取sizeof(str)个字符或读到换行符或文件结尾时会停止。
- stream 文件流。
fclose(fp)
每次使用完文件都要关闭文件,释放文件资源。