简单介绍C语言文件操作函数的用法(可以直接使用):
- fopen
- fclose
- fprintf
- fscanf
- fputc
- fgetc
- fread
- fwrite
头文件
#include<stdio.h>
函数使用
- fopen
函数原型:
FILE *fopen( const char *filename, const char *mode );
FILE *fp; //创建一个文件指针
fp = fopen("test.c", "w");
test.c为文件名filename,w表示以写(write)的方式打开
打开方式:
r: 以读的方式打开,文件要是不存在,则打开失败
w: 打开一个空文件以进行写入。如果给定的文件存在,其内容将被销毁。没有文件时自动创建一个空文件
a: 以追加的方式打开在文件的末尾(附加)打开,在将新数据写入文件之前不删除EOF标记;如果文件不存在,首先创建文件。
r+: 以读和写的方式打开一个文件。该文件必须存在。
w+: 以读和写的方式打开一个空文件。如果给定的文件存在,其内容将被销毁。
a+: 以读和追加的方式打开一个文件;附加操作包括在将新数据写入文件之前删除EOF标记,在写入完成后恢复EOF标记;如果文件不存在,首先创建文件。
- fclose
函数原型:
int fclose( FILE *stream );
fclose(fp);
有返回值,如果流成功关闭,则fclose返回0,如果失败则返回EOF表示错误
- fprintf
函数原型:
int fprintf( FILE *stream, const char *format [, argument ]...);
/*read the various data back from the file*/
fp = fopen("test.txt", "w");
fprintf(fp, "%s %ld %f%c", "a-string",65000, 3.14159, 'x');
fclose(fp);
- fscanf
函数原型:
int fscanf( FILE *stream, const char *format [, argument ]... );
/* Read data back from file: */
char s[10];
int i;
float f;
char c;
fp = fopen("test.txt", "r");
fscanf(fp, "%s", s);
fscanf(fp, "%ld", &i);
fscanf(fp, "%f", &f);
fscanf(fp, "%c", &c);
printf("%s,%ld,%f,%c\n", s, i, f, c);
fclose(fp);
- fputc
函数原型:
int fputc( int c, FILE *stream );
/*to send a character array to pf.*/
fp = fopen("test.txt", "a");
fputc('\n', fp);
fputc('s', fp);
fputc('s', fp);
fputc('r', fp);
fclose(fp);
- fgetc
函数原型:
int fgetc( FILE *stream );
/*uses getc to read*/
fp = fopen("test.txt", "r");
char ch;
ch = fgetc(fp);
printf("%c\n",ch);
ch = fgetc(fp);
printf("%c\n", ch);
ch = fgetc(fp);
printf("%c\n", ch);
fclose(fp);
从文件指针pf中读一个数据给ch,使用完 fgetc 后文件指针 fp 自动后移
- fread
函数原型:
size_t fread( void *buffer, size_t size, size_t count, FILE *stream );
/* Attempt to read in 10 characters */
fp = fopen("test.txt", "r");
int numread;
char list2[30];
numread = fread(list2, sizeof(char), 10, fp);
printf("Number of items read = %d\n", numread);
printf("Contents of buffer = %.10s\n", list2);
- fwrite
函数原型:
size_t fwrite( const void *buffer, size_t size, size_t count, FILE *stream );
/* Write 25 characters to stream */
fp = fopen("test.txt", "w");
int numwritten;
char list[30] = "abcdefghijklmnopqrstuvwxyz";
numwritten = fwrite(list, sizeof(char), 25, fp);
printf("Wrote %d items\n", numwritten);
fclose(fp);

2004

被折叠的 条评论
为什么被折叠?



