J'essaie de créer un programme d'écriture de base de données binaire en C.Comment créer une base de données en utilisant des structures en C
Problème est que lorsque la base de données est mise à jour, le programme supprime les données précédentes du fichier et stocke uniquement les nouvelles données mises à jour.
Programme:
#include <stdio.h>
int main(){
struct STUINFO { char fname[30], lname[30], year[5], batchno[30];};
int id, s, roll;
FILE *outfile;
// open file for writing
if (outfile = fopen ("stuinfo.bin", "w") == NULL)
{
fprintf(stderr, "\nError opening file\n");
return (-1);
}
printf("\nEnter Nine Digit Enrollment no. :\n");
scanf("%d", &roll);
id = roll - 100000000;
if (id < 0) {
printf("Please Enter Valid Nine Digit no.\n");
return -2;
}
struct STUINFO output;
printf("Enter First Name :\n");
scanf("%s", output.fname);
printf("Enter Last Name :\n");
scanf("%s", output.lname);
printf("Enter Year of Semester :\n");
scanf("%s", output.year);
printf("Enter Batch no. :\n");
scanf("%s", output.batchno);
s = sizeof(struct STUINFO);
fseek(outfile, +id*s, SEEK_CUR);
// write struct to file
if(fwrite (&output, sizeof(struct STUINFO), 1, outfile) != 0)
printf("contents to file written successfully !\n");
else
printf("error writing file !\n");
return 0;
}
'include stdio.h' est une erreur de syntaxe. – melpomene
Le mode Ouvrir 'w' efface le fichier. Si vous voulez ajouter à un fichier, utilisez 'a'. – Barmar
BTW 'fwrite! = 0' est un non-sens – BLUEPIXY