I'm coding a contact manager using a doubly linked list that is manipulated by functions using pointers that reads in a contactList.txt file.But when I coded the first function to do a search I got the following error list:

Error   8   error C2059: syntax error : ')' C:\Users\Brian\Documents\Visual Studio 2010\Projects\G00290342Manager.c\G00290342Manager.c\ContactManager.cpp   9   1
Error   23  error C2065: 'FALSE' : undeclared identifier    C:\Users\Brian\Documents\Visual Studio 2010\Projects\G00290342Manager.c\G00290342Manager.c\ContactManager.cpp   142 1
Error   3   error C2065: 'listpointer' : undeclared identifier  C:\Users\Brian\Documents\Visual Studio 2010\Projects\G00290342Manager.c\G00290342Manager.c\ContactManager.cpp   9   1
Error   19  error C2065: 'query' : undeclared identifier    C:\Users\Brian\Documents\Visual Studio 2010\Projects\G00290342Manager.c\G00290342Manager.c\ContactManager.cpp   38  1
Error   4   error C2065: 'string' : undeclared identifier   C:\Users\Brian\Documents\Visual Studio 2010\Projects\G00290342Manager.c\G00290342Manager.c\ContactManager.cpp   9   1
Error   7   error C2078: too many initializers  C:\Users\Brian\Documents\Visual Studio 2010\Projects\G00290342Manager.c\G00290342Manager.c\ContactManager.cpp   9   1
Error   16  error C2079: 'listmember' uses undefined struct 'listelement'   C:\Users\Brian\Documents\Visual Studio 2010\Projects\G00290342Manager.c\G00290342Manager.c\ContactManager.cpp   37  1
Error   20  error C2086: 'int iChoice' : redefinition   C:\Users\Brian\Documents\Visual Studio 2010\Projects\G00290342Manager.c\G00290342Manager.c\ContactManager.cpp   43  1
Error   32  error C2374: 'getFirst' : redefinition; multiple initialization C:\Users\Brian\Documents\Visual Studio 2010\Projects\G00290342Manager.c\G00290342Manager.c\ContactManager.cpp   153 1

I checked the errors and some of the errors don't make sense to me as it says undeclared variable but I have declared it in main.

#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<process.h>
#include<stdlib.h>
#include<dos.h>

//functions
listelement * getFirst(listelement *listpointer,string query[MAX]);
void getLast();
void getEmail();
void getCompany();
void getNumber();
void editCon();
void delCon();
void addCon();
void listAll();
void sortCon();
void Menu (int *choice);

#define MAX 20
//struct to order contactList
struct contact
{
    string firstName[MAX],lastName[MAX],email[MAX],companyName[MAX];
    long phoneNum[MAX];
    struct listelement *link
    struct contact *next;
    struct contact *prev;

}list;



int main()
{
    listelement listmember, *listpointer;
    string query;int iChoice = 0;
    listpointer = NULL;


    Menu (&iChoice);
    int iChoice;

    fflush(stdin);
    scanf_s("%d", &iChoice);
    // user enters one of 9 values
    // options are as follows: get first name,last name,list all contacts,search through contacts,add a new contact,edit/delete or sort contacts.
    switch(iChoice)
    {
        case 1:     
        {
            printf ("Enter contact first name to get details  ");
            scanf ("%d", &query);
            listpointer = getFirst (listpointer, query);
            break;
        }
        case 2:     
        {
            getLast();
            break;
        }
        case 3:     
        {
            listAll();
            break;
        }
        case 4:     
        {
            getEmail();
            break;
        }
        case 5:     
        {
            getCompany();
            break;
        }
        case 6:     
        {
            getNumber();
            break;
        }
        case 7:     
        {
            addCon();
            break;
        }
        case 8:     
        {
            editCon();
            break;
        }
        case 9:     
        {
            delCon();
            break;
        }
        case 10:        
        {
            sortCon();
            break;
        }
        case 11:        // exit
        {
            printf("\n\nProgram exiting!...");
            exit(0);//terminates program
            break;
        }
        default:
        printf ("Invalid menu choice - try again\n");
        break;

    }//end of switch
    return(iChoice);


}//end of main
//menu function to test if invalid input was entered in a menu choice.
void Menu (int *iChoice)
{
    char    local;

    system("cls");
    printf("\n\n\t\tBrian Varley/G00290342\n\n");
    printf("\n\n\t\tWelcome to my Contact Manager\n\n");
    printf("\n\t\t1. First name");
    printf("\n\t\t2. Last name");
    printf("\n\t\t3. List all contacts");
    printf("\n\t\t4. Search email");
    printf("\n\t\t5. Search company name");
    printf("\n\t\t6. Search number");
    printf("\n\t\t7. Add contact");
    printf("\n\t\t8. Edit contact");
    printf("\n\t\t9. Delete contact");
    printf("\n\t\t10. Sort contacts");
    printf("\n\t\t11. Exit");
    printf("\n\n\t\tEnter your menu choice: ");

    do
    {
    local = getchar ();
    if ( (isdigit(local) == FALSE) && (local != '\n') )
        {
        printf ("\nYou must enter an integer.\n");
        printf ("");
    }
    } while (isdigit ((unsigned char) local) == FALSE);

    *iChoice = (int) local - '0';
}

//function to get a contact by entering first name
listelement * getFirst (listelement *listpointer, string query)
{
    //variables
    char query[MAX],firstName[MAX];
    FILE *fp, *ft;
    int i,n,ch,l,found;

    system("cls");
    do
    {
    found=0;


    l=strlen(query);
    fp=fopen("ContactList.txt","r");

    system("cls");
    printf("\n\n..::Search result for '%s' \n===================================================\n",query);
    while(fread(&list,sizeof(list),1,fp)==1)
    {
    for(i=0;i<=l;i++)
    firstName[i]=list.firstName[i];
    firstName[l]='\0';
    if(stricmp(firstName,query)==0)
    {
    printf("\n..::First Name\t: %s\n..::Second Name\t: %ld\n..::Email\t: %s\n..::CompanyName\t:  %s\n..::Number\t:  %s\n",list.firstName,list.lastName,list.email,list.companyName.list.phoneNumber);
    found++;
    if (found%4==0)
    {
    printf("..::Press any key to continue...");
    getch();
    }
    }
    }

    if(found==0)
    printf("\n..::No match found!");
    else
    printf("\n..::%d match(s) found!",found);
    fclose(fp);
    printf("\n ..::Try again?\n\n\t[1] Yes\t\t[11] No\n\t");
    scanf("%d",&ch);
    }while(ch==1);



}

Anyone have any idea as to where I'm going wrong in the code?Thanks