33,321
社区成员




struct time
{
int num;
int year;
int month;
};
#include "stdio.h"
#include <stdlib.h>
int average(char *pFilePath);
void main()
{
FILE *fp;
int nData[10];
for(int i=0;i<10;i++)
{
printf("请输入第%d个数:",i+1);
scanf("%d",nData+i);
}
fp = fopen("c:\\data.txt", "wb");//b表示以二进制的形式写入文件
if(fp!=NULL)
{
fwrite(nData,sizeof(int),10,fp);
fclose(fp);
//写完文件后,可以看一下文件大小,40个字节,
//其实就是数组的大小 sizeof(int)*10 = 40 以前在学校里没搞明白的问题,现在明白了
}
printf("平均值大小:%d\n",average("c:\\data.txt") );
system("pause");
}
int average(char *pFilePath)
{
int nData[10]={0};
FILE *fp;
fp = fopen(pFilePath, "rb");//b表示以二进制的形式
if(fp!=NULL)
{
fread(nData,sizeof(int),10,fp);
fclose(fp);
}
else
{
printf("读取文件出错了...");
return 0 ;
}
int nSum = 0 ;
for(int i=0;i<10;i++)
{
printf("第%d个数:\t内存地址%8x\t值:%d\n",i+1,nData+i,*(nData+i));
nSum += *(nData+i) ;
}
return nSum/10;
}
//数组其实和结构差不多的,改改就可以了,主要是要得到首地址,和所占内存的大小
//这个地址就好像是小时候放牛时候的那条链接牛鼻子的绳子,一拉就把牛牵走了
#include <stdio.h>
struct time
{
int num;
int year;
int month;
};
int main()
{
struct time t1={1,2008,8};
FILE *fp;
fp = fopen( "str.dat", "w" );
fwrite(&t1, 1, sizeof(t1), fp);//写入文件
rewind(fp);//定位到文件头,以便后面的读取正常!!
fwrite(&t1, 1, sizeof(t1), fp);//从文件读出啦
fclose( fp );
printf("%d,%d,%d",t1.num,t1.year,t1.month);
return 0;
}
#include <stdio.h>
struct time
{
int num;
int year;
int month;
};
int main()
{
struct time t1;
FILE *fp_in, *fp_out;
fp_in = fopen( "in.dat", "r" );
fp_out = fopen( "out.dat", "w" );
fscanf( fp_in, "%d%d%d", &( t1.num ),
&( t1.year ), &( t1.month ) );
fprintf( fp_out, "%d\n%d\n%d\n", t1.num,
t1.year, t1.month );
fclose( fp_in );
fclose( fp_out );
return 0;
}