C语言--文件

来源:互联网 发布:血源诅咒捏脸美女数据 编辑:程序博客网 时间:2024/06/03 07:44

#include
#include
********************************文件***********************************8
1,fread,fwrite-块操作
fwrite(unsigned char*pubff,int size,int count,FILE *fp)
pubff是一个指向需要写入数据的存放地址,size是指定写的单个数据大小,count是指一共需要写多少个size字节的数据。
fread(unsigned char*pubff,int size,int count,FILE *fp)

2,fgetc,fputc -单个字符操作

3,fgets,fputs -字符串操作
char*fgets(char*str,into size,FILE *fp)
从指定文本文件中读入一个字符串
char fputs(char*str,FILE*fp)
向指定的文件中写入一个字符串

4,fscanf,fprintf-格式化操作
fprintf(FILE *fp,格式字符串,输出参数列表)
fscanf(FILE *fp,格式化字符串,输入参数列表)

5,fseek(FILE *fp,offset,seek_  ())
offset是指以seek- ()为基于当前位置向前或向后移动的字节数
0是指向首位置,1是指向当前位置,2是指向末尾位置
origin:seek_set(0),seek_cur(1),seek_end(2)
fseek(fp,0,2);移动到文件末尾
fseek(fp,0,0)移动到文件开头

6,ftell(FILE *fp)返回当前文件中位置指针相对头文件的位移量。
7,rewind//指针指向首地址,
8,_stat

9,以写的方式打开一个文件,该文件可以不存在。


#if 0
void sort(char *a,int n);
void main()
{
 FILE *fp = NULL,*fp2=NULL;
 char a[20]="";
 int n,size = 0;
 fp = fopen("C:\\Documents and Settings\\Administrator\\桌面\\1.txt","rb");
 fp2 = fopen("C:\\Documents and Settings\\Administrator\\桌面\\2.txt","wb");
 if(NULL == fp)
  printf("error\n");
// fseek(fp,2,0);
 fseek(fp,0,2); //移动到文件末尾
 size = ftell(fp);
 fseek(fp,0,0);//rewind(fp);
 n = fread(a,size,1,fp);
 puts(a);
 printf("%d\n",n);
 sort(a,size);
 fwrite(a,size,1,fp2);
 fclose(fp);
}
void sort(char *a,int n)
{
 int i,j;
 char t;
 for(i = 0;i
 {
  for(j = 0;j
  {
   if(a[j] < a[j+1])
   {
    t = a[j];
    a[j] = a[j+1];
    a[j+1] = t;
   }
  }
 }
}
#endif


EOF--文件结束标志(-1)
feof(fp);

#if 0
void main()
{
 FILE *fp = NULL,*fp2=NULL;
 char a;
 int n,size = 0;
 fp = fopen("C:\\Documents and Settings\\Administrator\\桌面\\1.txt","rb");
 fp2 = fopen("C:\\Documents and Settings\\Administrator\\桌面\\2.txt","wb");
 
 while((a = fgetc(fp)) != EOF)
 {
  putchar(a);
  fputc(a,fp2);
 }
 fclose(fp);
 fclose(fp2);
}
#endif
#if 0

void main()
{
 FILE *fp = NULL,*fp2=NULL;
// char a[20];
 struct _stat buf;
 int n,size = 0;
 int a,b;
 fp = fopen("C:\\Documents and Settings\\Administrator\\桌面\\1.txt","rb");
 fp2 = fopen("C:\\Documents and Settings\\Administrator\\桌面\\2.txt","wb");
 
 _stat("C:\\Documents and Settings\\Administrator\\桌面\\1.txt",&buf);
 size = buf.st_size;
// fgets(a,size+1,fp);
// fputs(a,fp2);
// puts(a);
 fscanf(fp,"-=",&a,&b);
 fprintf(fp2,"a=%d,b=%d",a,b);
 fprintf(fp2,"asdfasdfad");
 fclose(fp);
 fclose(fp2);
}
#endif

typedef struct data
{
 char a[3];
 char num[7];
 char b[72];
}Data;
#include
#include
void sort(Data *p,int n);
void main()
{
 Data *p = NULL;
 FILE *fp1 = fopen("C:\\Documents and Settings\\Administrator\\桌面\\3.txt","rb");
 FILE *fp2 = fopen("C:\\Documents and Settings\\Administrator\\桌面\\4.txt","wb");
 int size = 0,n = 0,i;
 struct _stat buf;
 _stat("C:\\Documents and Settings\\Administrator\\桌面\\3.txt",&buf);
 size = buf.st_size;
 n = size / sizeof(Data);
 p = (Data *)malloc(n*sizeof(Data));
 for(i = 0;i
 {
  fread(&p[i],sizeof(Data),1,fp1);
 }
 sort(p,n);
 for(i = 0;i
 {
  fwrite(&p[i],sizeof(Data),1,fp2);
 }
 fclose(fp1);
 fclose(fp2);
}

void sort(Data *p,int n)
{
 int i,j;
 Data t;
 for(i = 0;i
 {
  for(j = 0;j
  {
   if(strncmp(p[j].num,p[j+1].num,7)> 0)
   {
    t = p[j];
    p[j] = p[j+1];
    p[j+1] = t;
   }
  }
 }
}