您的位置:首页 > 移动开发 > IOS开发

iOS基础知识:文件流写入读取结构体变量、数组、结构体数组

2015-12-04 20:21 453 查看
文件流写入读取结构体变量、数组、结构体数组
#include <stdio.h>//定义结构体
typedef struct{

char name[12];
int age;

}Person;

int main(int argc, const char * argv[]) {
//写入结构体
/*
FILE *fp = fopen("/Users/ios/Desktop/1.data", "w");
if (fp) {
//做写入
// int num = 10;
// fwrite(&num, sizeof(num), 1, fp);//写入int

Person p = {"小明",16}; //类似于上方代码
fwrite(&p, sizeof(p), 1, fp);//写入结构体Person
printf("写完了\n");

fclose(fp);
}
*/
//读取结构体
/*
FILE *fp = fopen("/Users/ios/Desktop/1.data", "r");
if(fp){

//做读取
Person p;
fread(&p, sizeof(p), 1, fp);
printf("姓名:%s 年龄:%d\n",p.name,p.age);//读取结构体

fclose(fp);
}
*/
//写入数组
/*
FILE *fp = fopen("/Users/ios/Desktop/1.xxxx", "w");
if(fp){
float fs[] = {10.1f,10.2f,10.3f,10.4f,10.5f};//数组名本身就是地址(&可加/可不加)
fwrite(&fs, sizeof(float), 5, fp);//第二个参数:每个元素的大小,第三个:一共多少块,多少块以数组长度为结果
printf("haha\n");

fclose(fp);
}
*/
//读取数组
/*
FILE *fp = fopen("/Users/ios/Desktop/1.xxxx", "r");
if(fp){
float fs[5];//定义存储的空间
fread(&fs, sizeof(float), 5, fp);
for (int i =0; i<5; i++) {
printf("%.1f\n",fs[i]);
}

fclose(fp);
}
*/
//数组定义语法:类型 数组名[长度] = { 元素1,元素2,元素n };
//结构体数组的写入
/*
FILE *fp = fopen("/Users/ios/Desktop/xxx.1", "w");
if (fp) {
Person ps[4] = { {"刘德华",16},{"张学友",17},{"郭富城",18},{"黎明,19} }; //四个结构体,存储在结构体数组中
fwrite(ps, sizeof(Person), 4, fp);
printf("第四个天王最帅\n");

fclose(fp);
}
*/
//结构体数组的读取
FILE *fp = fopen("/Users/ios/Desktop/xxx.1", "r");
if (fp) {
//读取
Person ps[4];//定义存储空间
fread(ps, sizeof(Person), 4, fp);
for (int i = 0; i<4; i++) {
printf("姓名:%s 年龄:%d\n",ps[i].name,ps[i].age);
}

fclose(fp);
}

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: