Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- #define FILE_NAME "trips.dat"
- #define AMOUNT 3;
- typedef struct {
- char departureDate[50];
- char destination[50];
- char departureTime[50];
- int compartmentSeatsFree;
- int reservedSeatsFree;
- } info;
- FILE *fileOpenW(char fileName[50]) {
- FILE *tripsFile = fopen(fileName, "w");
- if (tripsFile == NULL) {
- printf("\nError opening file\n");
- }
- return tripsFile;
- }
- FILE *fileOpenR(char fileName[]) {
- FILE *tripsFile = fopen(fileName, "r");
- if (tripsFile == NULL) {
- printf("\nError opening file\n");
- }
- return tripsFile;
- }
- void writeTripsToFile(char fileName[50], info *trips) {
- FILE *tripsFile;
- tripsFile = fileOpenW(fileName);
- for (int i = 0; i < 3; i++) {
- fwrite(&trips[i], sizeof(info), 1, tripsFile);
- }
- if (fwrite != 0) {
- printf("contents to file written successfully !\n");
- } else {
- printf("error writing file !\n");
- }
- fclose(tripsFile);
- }
- void writeTripInfo(info *trip){
- printf(" Departure date: %s\n", (*trip).departureDate);
- printf(" Destination: %s\n", (*trip).destination);
- printf(" Departure time: %s\n", (*trip).departureTime);
- printf("Free compartment seats: %d\n", (*trip).compartmentSeatsFree);
- printf(" Free reserved seats: %d\n", (*trip).reservedSeatsFree);
- printf("---------------------------------\n");
- }
- void getTripsWithDestination(char fileName[50], char dest[50]){
- FILE *tripsFile = fileOpenR(fileName);
- info temp;
- while(fread(&temp, sizeof(info), 1, tripsFile)){
- if(strcmp(temp.destination, dest) == 0){
- writeTripInfo(&temp);
- }
- }
- fclose(tripsFile);
- }
- int main() {
- info trips[3];
- trips[0] = (info) {"12.12.19", "Moscow", "12:23", 12, 33};
- trips[1] = (info) {"01.02.19", "Oslo", "17:11", 32, 20};
- trips[2] = (info) {"02.12.20", "Melbourne", "02:39", 2, 9};
- writeTripsToFile(FILE_NAME, trips);
- getTripsWithDestination(FILE_NAME, "Moscow");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement