#include <stdio.h>
#include <string.h>
int main()
{
FILE *fd;
char *str="Hello World";
char readbuf[1024]={0};
fd=fopen("./file2","w+");
// size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);
fwrite(str,sizeof(char),strlen(str),fd);
fseek(fd,0,SEEK_SET);
// size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
fread(readbuf,sizeof(char),strlen(str),fd);
printf("du qu:%s\n",readbuf);
return 0;
}
函数原型在代码注释里。
1.特殊:fd命名的是FILE;
fopen:"w+"打开方式为可读可写。
fwrite/fread:
(1)ptr:是一个指针,对fwrite来说,是要获取数据的地址;
(2)size:要写入内容的字节数;
(3)nmemb:要进行写入size字节的数据项的个数;
(4)stream:目标文件指针
fseek(光标移动)。
将结构体写入文件
struct Test
{
int a;
char c;
};
int main()
{
FILE *fd;
struct Test data={5,'a'};
struct Test data2;
fd=fopen("./file1","w+");
int n_write=fwrite(&data,sizeof(struct Test),1,fd);
fseek(fd,0,SEEK_SET);
int n_read=fread(&data2,sizeof(struct Test),1,fd);
printf("read %d,context:%d,context:%c\n",n_read,data2.a,data2.c);
fclose(fd);
return 0;
}
fputc函数
int fputc(int c, FILE *stream);
c表示字符
*stream:文件描述符指向的文件。
int main()
{
// FILE *fopen(const char *path, const char *mode);
FILE *fd;
char *str="Hello World";
int i;
int len=strlen(str);
fd=fopen("./file3","w+");
for(i=0;i<len;i++){
fputc(*str,fd);
str++;
}
fclose(fd);
return 0;
}
2.fgetc,feof函数。
int main()
{
// FILE *fopen(const char *path, const char *mode);
FILE *fd;
int i;
char c;
fd=fopen("./file3","r");
while(!feof(fd)){
c=fgetc(fd);
printf("%c",c);
}
fclose(fd);
return 0;
}
feof:判断是否达到尾部,如果是则为真,否则为假。
fgetc:把文件读取出来;