下面的源程序展示了关于单链表如何从文件中读取数据和往文件里存入数据。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include<<a href="https://www.baidu.com/s?wd=stdio.h&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1Y4nyfLmHDYnWT3uWc3nvN-0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3EnH6drjRsPHf1" target="_blank" class="baidu-highlight">stdio.h</a>>
#include<<a href="https://www.baidu.com/s?wd=stdlib.h&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1Y4nyfLmHDYnWT3uWc3nvN-0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3EnH6drjRsPHf1" target="_blank" class="baidu-highlight">stdlib.h</a>>
#include<memory.h>
typedef struct node {
int data
struct node *next
}node
//从文件中读取数据存入链表
node *createlink()
{
node *head =(node*)malloc(sizeof(node))
int t
node *p
node *q
p=q=head
FILE * r= fopen("input.txt","r")
if(r==NULL)
{
printf("打开文件失败!")
return NULL
}
while(fscanf(r,"%d",&t)!=EOF)
{
q= (node*)malloc(sizeof(node))
q->data=t
p->next=q
p=q
}
p->next=NULL
return head
}
//输出链表到屏幕和文件output.txt
void outlink(node *head)
{
node *p=head->next
FILE *w =fopen("output.txt","w")
if(w==NULL)
{
printf("打开文件失败!")
return
}
while(p)
{
//输出链表节点数据到屏幕
printf("%d ",p->data)
//输出链表节点数据到文件output.txt
fprintf(w,"%d ",p->data)
p=p->next
}
printf("\n")
fprintf(w,"\n")
fclose(w)
return
}
int main()
{
node *head
int n,m
head=createlink()
outlink(head)
system("pause")
return 0
}
1、打开需要拆分的.dat文件,并读取其中的数据。可以使用QFile和QDataStream类来读取二进制数据。2、查找帧头。因为每个帧的长度是不固定的,所以必须通过查找帧头来确定每个帧的开始位置。帧头通常包含一些标识符或者其他元数据,用于描述该帧的内容。
3、拆分.dat文件。依次查找每个帧的开始位置,将其截取下来并存储到一个单独的文件中,直到整个.dat文件被拆分完毕。拆分时可以使用QFile类来创建和保存新的文件。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)