Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Im having difficulty with this compiling: \"titanic.c:10:19: fatal error: conio.

ID: 656527 • Letter: I

Question

Im having difficulty with this compiling: "titanic.c:10:19: fatal error: conio.h: No such file or directory
compilation terminated." If anyone can fix this thatd be great

you need to test it with this input: http://www.cse.msu.edu/~cse220/proj/Titanic.txt

/************************************************************************************************************
C program that reads a Titanic text file and prompts user to enter the class type, age and gender

and prints the matched count of query and survived in the matched and prints the percentage

of survival of matched .
*************************************************************************************************************/

#include <stdio.h>
#include <conio.h>   // this is where the problem is!
#include <ncurses.h>
#include <string.h>
#include <stdlib.h>

/* Macro definitions */
#define NUM_OF_LINES 2202
#define MAX_LINE_LEN 99
//structure declaration
typedef struct{

   char Class[7];
   char age[6];
   char gender[7];
   char survived[4];

}Passenger;

/* Function declarations */
int findchar(char str[], int size, int start, char ch) ;
void substrcpy(char str1[], int start, int end, char str2[]) ;
char* readline(FILE *fp, char line[]) ;
int cmpStruct(Passenger p, Passenger query);


int main(void)
{
   FILE *fp; // A file pointer
   char fileName[] = "Titanic.txt";
   fp = fopen(fileName, "r"); // Open the file for reading

   char Class[7];
   char age[6];
   char gender[7];
   char survived[4];

   int index=0;

   Passenger p[NUM_OF_LINES];


   if (fp == NULL)
   {
       // Fail to open the file, quit the program
       printf("Error opening file %s. ", fileName);
       getch();
       return -1;
   }

   int i1, i2;


   char line[MAX_LINE_LEN];
   // each line is stored in one row of the array
   char lines[NUM_OF_LINES][MAX_LINE_LEN];

   //read structure file data
   while(!feof(fp) && index<NUM_OF_LINES)
   {


       if(readline(fp,line)!=NULL)
           strcpy(lines[index],line);
       else
           break;

       int len = strlen(lines[index]);

       i1 = findchar(lines[index], len, 0, '=');
       i2 = findchar(lines[index], len, i1, ',');
       substrcpy(lines[index], i1+1, i2-1, p[index].Class);

       i1 = findchar(lines[index], len, i2, '=');
       i2 = findchar(lines[index], len, i1, ',');
       substrcpy(lines[index], i1+1, i2-1, p[index].age);

       i1 = findchar(lines[index], len, i2, '=');
       i2 = findchar(lines[index], len, i1, ',');
       substrcpy(lines[index], i1+1, i2-1,p[index].gender);

       i1 = findchar(lines[index], len, i2, '=');
       substrcpy(lines[index], i1+1, len-1, p[index].survived);

       index++;
   }

   int userChoice;

   do
   {
       printf("Please choose an option(1 for query, 0 for quit) : ");
       scanf("%d",&userChoice);

       //checking if user choice is 1
       if(userChoice==1)
       {
           printf("You choose to query the Titanic data. ");
           printf("Which cabin class(first, second, third,crew) :");

           //read class type
           scanf("%6s",Class);

           printf("What age(adult, child) :");
           //read age
           scanf("%5s",age);

           printf("What gender(male,female) :");
           scanf("%6s",gender);
           //read gender
           Passenger query;

           strcpy(query.Class,Class);
           strcpy(query.age,age);
           strcpy(query.gender,gender);

           int i=0;
           int matchedCount=0;
           int survivedCount=0;

           while(i<NUM_OF_LINES)
           {
               //calling cmpStruct that checks matching of given query with structure at index i
               if(cmpStruct(p[i], query)==0)
               {
                   matchedCount++;
                   if(strcmp(p[i].survived,"yes")==0)
                       survivedCount++;
               }
               i++;
           }

           printf("Query result : ");
           printf("%d passengers match your query, %d survived. ",matchedCount,survivedCount);
           if(matchedCount>0)
               printf("Chance of survival is %.1f %% ",((double)survivedCount/matchedCount)*100.0);
           else
               printf("No match found ");


       }
       //exit the program if the user choice is 0
       else if(userChoice==0)
       {
           printf("You chose to quit. Bye!");
           getch();
           //call exit(0) method to close the program
           exit(0);
       }

       if(userChoice<0 || userChoice>1)
           printf("Invalid choice");

   }while(userChoice<0 || userChoice>1);

   fclose(fp); // Close the file after reading
   getch();
   return 0;

}

//The method cmpStruct that accpets teh passenger and query and returns 0 if the matched ortherwiser returens 1
int cmpStruct(Passenger p, Passenger query)
{
   int match=1;

   //check if Class type is any and age type any
   if(strcmp(query.Class,"any")==0 && strcmp(query.age,"any")==0)
   {
       //then compare only gender
       if( strcmp(p.gender,query.gender)==0)
           match=0;
   }
   //check if Class type is any
   else if(strcmp(query.Class,"any")==0)
   {
       //then compare age and gender type of query to Structure variable ,p
       if( strcmp(p.age,query.age)==0 && strcmp(p.gender,query.gender)==0)
           match=0;
   }
   //Check if the age type is any
   else if(strcmp(query.age,"any")==0)    
   {
       //then compare class type and gender type of query to Structure variable ,p
       if(strcmp(p.Class,query.Class)==0 && strcmp(p.gender,query.gender)==0)
           match=0;
   }
   //Check if the gender type is any
   else if(strcmp(query.gender,"any")==0)    
   {
       //then compare class type and age type of query to Structure variable ,p
       if(strcmp(p.Class,query.Class)==0 && strcmp(p.age,query.age)==0)
           match=0;
   }

   else
   {
       //Otherwiser match class type and age and gender of query with Passenger structure variable,p
       if(strcmp(p.Class,query.Class)==0 && strcmp(p.age,query.age)==0 && strcmp(p.gender,query.gender)==0)
           match=0;
   }


   return match;
}

//Retunrs the position of the character ch in str of size from start postion
int findchar(char str[], int size, int start, char ch)
{
   int i;
   for(i = start; i < size; i++) {
       if(str[i] == ch) {
           return i;
       }
   }
   return -1;
}

void substrcpy(char str1[], int start, int end, char str2[])
{
   int i, j;
   for(i = start, j = 0; i <= end; i++, j++) {
       str2[j] = str1[i];
   }
   str2[j] = '';
}
/* This function reads one line from an opened file stream */
/* Return the same char pointer pointing to line if reading succeeds */
/* Return NULL pointer if reading fails */
char* readline(FILE *fp, char line[])
{

   // Read one line using fgets
   if (fgets(line, MAX_LINE_LEN, fp) != NULL) {
       int len = strlen(line);
       // Remove all the ' ' and ' ' characters at the end of line
       while (line[len - 1] == ' ' || line[len - 1] == ' ') {
           line[len - 1] = '';
           len = strlen(line);
       }
       // Reading succeeded
       return line;
   }
   else {
       // Reading failed
       return NULL;
   }
}

Explanation / Answer

typedef struct { char mmsi[10]; char name[20]; double latitude; double longitude; int course; double speed; }Vessel; void searchByLatLong(double latitude, double longitude){ FILE * file; struct dirent *drnt; DIR * dir = opendir("./text"); char *path = (char *)malloc(19); Vessel *vessel = (Vessel *)malloc(sizeof(Vessel)); while((drnt = readdir(dir)) != NULL) { if(strcmp(drnt->d_name,".") && strcmp(drnt->d_name,"..")) { strcpy(path,"text/"); strcat(path,drnt->d_name); file=fopen(path, "r"); fscanf(file," %s %[a-zA-Z0-9 ]19s %lf %lf %d %lf", &vessel->mmsi,&vessel->name,&vessel->latitude,&vessel->longitude,&vessel->course,&vessel->speed); // if (mmsi+".txt" == drnt->d_name){ printf("%s %s %lf %lf %d %lf ",vessel->mmsi,vessel->name,vessel->latitude,vessel->longitude,vessel->course,vessel->speed); //} fclose(file); } seekdir(dir, telldir(dir)); // if(this->mmsi == mmsi){ // printVessel(); // } } closedir(dir); }