There are many problems with your code.
First of all, fopen returns the pointer of the opened file, which you do not store in fptr (which remains to store a random memory address).
Second, scanf and printf argument count did not match the format string.
I've fixed your code below:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char contact[100];
printf("Enter first name, last Name, phone number\n");
fgets(contact, sizeof(contact), stdin);
FILE * fptr = fopen("ContactList.txt", "w");
if (!fptr)
{
printf("Failed to create file.\n");
return -1;
}
fprintf(fptr, "%s\n", contact);
fclose(fptr);
fptr = fopen("ContactList.txt", "r");
if (!fptr)
{
printf("Failed to open file.\n");
return -2;
}
char firstName[100];
char lastName[100];
char phoneNumber[100];
fscanf(fptr, "%s %s %s", firstName, lastName, phoneNumber);
printf("First name: %s\n", firstName);
printf("Last name: %s\n", lastName);
printf("Phone Number: %s\n", phoneNumber);
return 0;
}