C库文件操作相关函数
FILE *fopen(const char *filename, const char *mode)
filename 打开的文件名 mode 打开模式
返回文件指针
size_t fread(void *ptr, size_t size, size_t, FILE *stream)
从stream指向的文件中读取n个字段,每个字段为size字节,并将读取的数据放在ptr所指的字符数组中,返回实际读取字节数
size_t fwrite(const void *ptr, size_t size, size_t n, FILE *stream)
从缓冲区ptr所指的数组中把n个字段写到stream指向的文件中,每个字段长为size个字节,返回实际写入的字段数。
int fgetc(FILE *stream)
从指定文件中读取一个字符
例子 1:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
FILE *fp;
char ch;
if((fp = fopen("test.txt","rt")) == NULL)
{
printf("file open error!");
exit(1);
}
ch = fgetc(fp);
while(ch != EOF)
{
putchar(ch);
ch = fgetc(fp);
}
fclose(fp);
}
int fputc(int c, FILE *stream)
例子 2:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
FILE *fp;
char ch;
if((fp = fopen("test.txt","wt+")) == NULL)
{
printf("file open error!");
exit(1);
}
printf("Please enter a string\n");
ch = getchar();
while(ch != '\n')
{
fputc(ch, fp);
ch = getchar();
}
fclose(fp);
}
fscanf(FILE *stream, char *format [,argument...])
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
int i;
printf("Please enter an interger:");
if(fscanf(stdin, "%d",&i)) //从标准输入流读取
printf("The interger is :%d\n",i);
return 0;
}
int fprintf(FILE *stream, char *format[,argument...])
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
FILE *stream;
int i = 10;
double fp = 1.5;
char s[] = "hello world";
char c = '\n';
stream = fopen("fprint.out", "w");
fprintf(stream, "%s%c", s, c);
fprintf(stream, "%d\n", i);
fprintf(stream, "%f\n", fp);
fclose(stream);
return 0;
}
int fseek(FILE *stream, long offset, int whence)
设置文件指针whence :
SEEK_SET:从文件的开始处开始搜索
SEEK_CUR:从当前位置开始搜索
SEEK_END:从文件结尾处开始搜索