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;
}
这个文本编辑后是这样的:
我的运行结果和老陈不太一样,老陈的那个特别明显(虽然人读起来很费劲看不懂,但是不耽误机器识别),是这样的:
但是我的运行结果却很正常:
如果有大佬发现我这里哪有问题,或者知道怎么回事,可以留言或者私聊告诉我,给我讲解一下!
在程序中已经写好文本,写到程序外,是先写后读
在程序外写好的文本,如果修改的话,是先读再写
总之,文本操作文本操作,一定是对文本进行操作,先有文本,然后才能操作!