#include "stdio.h"
#include "stdlib.h"
#include "string.h"
void main_fputc()
{
FILE *fp = NULL;
char s[] = "1234567890";
int i = 0;
char* filename = "c:/1.txt";
fp = fopen(filename,"r+");
if(fp == NULL)
{
printf("func fopen error!\n");
return ;
}
printf("fopen success\n");
for(i=0;i<strlen(s);i++)
{
fputc(s[i],fp);
}
fclose(fp);
}
void main_fgetc()
{
FILE *fp = NULL;
char s;
int i = 0;
char* filename = "c:/1.txt";
fp = fopen(filename,"r+");
if(fp == NULL)
{
printf("func fopen error!\n");
return ;
}
printf("fopen success\n");
while(!feof(fp)){
s = fgetc(fp);
printf("%c",s);
}
printf("\n");
fclose(fp);
}
void main_fputs()
{
FILE *fp = NULL;
char s[] = "1234567890";
int i = 0;
char* filename = "c:/1.txt";
fp = fopen(filename,"r+");
if(fp == NULL)
{
printf("func fopen error!\n");
return ;
}
printf("fopen success\n");
fputs(s,fp);
fclose(fp);
}
void main_fgets()
{
FILE *fp = NULL;
char from[1024];
int i = 0;
char* filename = "c:/1.txt";
fp = fopen(filename,"r+");
if(fp == NULL)
{
printf("func fopen error!\n");
return ;
}
printf("fopen success\n");
while(!feof(fp))
{
char *p = fgets(from,40,fp);
if( p == NULL )
{
goto End;
}
printf("%s",from);
//printf("\n");
}
End:
fclose(fp);
}
typedef struct Tea{
char name[64];
int age;
}Tea;
//直接把内存数据写入文件
void main_fwrite()
{
Tea array[3];
FILE *fp = NULL;
char from[1024];
int i = 0;
char* filename = "c:/3.data";
int tempcount = 0;
for(i=0;i<3;i++)
{
sprintf(array[i].name,"%d%d%d",i+1,i+1,i+1);
array[i].age = i + 31;
}
fp = fopen(filename,"wb");
if(fp == NULL)
{
printf("func fopen error!\n");
return ;
}
printf("fopen success\n");
for(i=0;i<3;i++)
{
//返回值 写入成功的次数
tempcount = fwrite(&array[i],sizeof(Tea),1,fp);
}
if( fp != NULL )
fclose(fp);
}
void main_fread()
{
Tea array[3];
FILE *fp = NULL;
char from[1024];
int i = 0;
char* filename = "c:/3.data";
int tempcount = 0;
/* for(i=0;i<3;i++)
{
sprintf(array[i].name,"%d%d%d",i+1,i+1,i+1);
array[i].age = i + 31;
}*/
fp = fopen(filename,"rb");
if(fp == NULL)
{
printf("func fopen error!\n");
return ;
}
printf("fopen success\n");
for(i=0;i<3;i++)
{
//返回值 写入成功的次数
tempcount = fread(&array[i],sizeof(Tea),1,fp);
}
for(i=0;i<3;i++)
{
//sprintf(array[i].name,"%d%d%d",i+1,i+1,i+1);
//array[i].age = i + 31;
printf("name:%s,age:%d\n",array[i].name,array[i].age);
}
if( fp != NULL )
fclose(fp);
}
void main()
{
//按字符操作文件
//main_fputc();
//main_fgetc();
//按行操作文件
//main_fputs();
//main_fgets();
//按块操作文件
main_fwrite();
main_fread();
system("pause");
}