Linux文件操作的练习3(写入结构体)

3.写入一个结构体:

前几个程序写的都是char*类型的字符串,这次写一个结构体来加深一下理解和印象

直接写程序:

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>

typedef struct node{
	int a;
	char b;
}Node;

int main(int argc,char** argv){
	int fd;
	Node a[4] = {{100,'S'},{90,'A'},{75,'B'},{60,'C'}};
	Node* temp;
	temp = (Node*)malloc(sizeof(Node) * (sizeof(a) / sizeof(a[0])));
	fd = open("./file1",O_RDWR);
	//这个文件我已经事先创建好了
	int Wtypes = write(fd,a,sizeof(a) / sizeof(a[0]));
	lseek(fd,0,SEEK_SET);
	int Rtypes = read(fd,temp,sizeof(a) / sizeof(a[0]));
	close(fd);
	
	printf("%d %c\n",temp[0].a,temp[0].b);
	printf("%d %c\n",temp[1].a,temp[1].b);
	printf("%d %c\n",temp[2].a,temp[2].b);
	printf("%d %c\n",temp[3].a,temp[3].b);
	//检查程序
	return 0;
}

这个文本编辑后是这样的:

在这里插入图片描述
我的运行结果和老陈不太一样,老陈的那个特别明显(虽然人读起来很费劲看不懂,但是不耽误机器识别),是这样的:


在这里插入图片描述

但是我的运行结果却很正常:
在这里插入图片描述
如果有大佬发现我这里哪有问题,或者知道怎么回事,可以留言或者私聊告诉我,给我讲解一下!

在程序中已经写好文本,写到程序外,是先写后读
在程序外写好的文本,如果修改的话,是先读再写
总之,文本操作文本操作,一定是对文本进行操作,先有文本,然后才能操作!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值