-
Notifications
You must be signed in to change notification settings - Fork 0
/
2019QfileHandling.c
92 lines (79 loc) · 1.75 KB
/
2019QfileHandling.c
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
struct loyalty
{
int loyaltyNum;
char *Name;
};
int main(void)
{
FILE *file;
int i,j,loyaltyNum,rows = 0;
char name[50];
bool valid;
char a;
file = fopen("loyalty.dat","r");
while(fscanf(file,"%i %s",&name,&loyaltyNum)!= EOF)
{
rows++;
}
fclose(file);
struct loyalty oldmem[rows];
struct loyalty newMem[5];
file = fopen("loyalty.dat","r+");
for(i=0;i<rows;i++)
{
fscanf(file,"%i %s",&oldmem[i].loyaltyNum,&oldmem[i].Name);
}
fclose(file);
for(i=0;i<5;i++)
{
printf("Enter the Name %i:",i);
scanf("%s",&name);
printf("Enter the Loyalty Number %i : ",i);
scanf("%i",&loyaltyNum);
printf("\n");
for (j=0;j<rows;j++)
{
if(oldmem[j].loyaltyNum == loyaltyNum)
{
printf("Existing old\n");
valid = false;
i--;
break;
}
else
valid = true;
}
if(valid)
{
for (j=0;j<5;j++)
{
if(newMem[j].loyaltyNum == loyaltyNum)
{
printf("Existing new\n");
valid = false;
i--;
break;
}
}
}
if(valid)
{
newMem[i].Name = strdup(name);
newMem[i].loyaltyNum = loyaltyNum;
}
}
file = fopen("loyalty.dat","a+");
if(a!='\n')
fprintf(file,"\n");
for(i=0;i<5;i++)
{
printf("%s",newMem[i].Name);
fprintf(file,"\n%i\t%s",newMem[i].loyaltyNum,newMem[i].Name);
printf("1");
}
fclose(file);
return 0;
}