um..i split up a code into two .c files and one .h file and am getting the above mentioned error in the title,it runs fine when it is not split up,could someone tell me what am doing wrong:
driver.c file
Code:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#include "guessgame2.h"
void play(int,int,int[],score,FILE *, score,FILE *);
int main()
{
FILE *newfile, *read;
score newscore;
score oldscore;
int allscores[3]={0};
int number, guess;
int correct;
correct =1;
srand(time(NULL));
number = rand()%10+1;//%32767 + 1;
printf("Welcome to the guessing game\n\n");
if(read = fopen("gameinfo.txt","r")) //read the previous scores from file
{
fscanf(read,"%d %d %d", &oldscore.attempts, &oldscore.higher, &oldscore.lower);
printf("\n\nPrevious high score.\n\n");
printf("Attempts\t\t%d\n\nToo High\t\t%d\n\nToo Low\t\t\t%d",oldscore.attempts,oldscore.higher,oldscore.lower);
}
play(guess,number, allscores, newscore, read,oldscore,newfile); //checks if number entered by user is higher or lower than the current number and also checks if the
//newscore is higher than the old score
getch();
return 0;
}
this is the guessgame2.c file
Code:
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include "driver.c"
#include "guessgame2.h"
void play(int guess,int number,int allscores[],score newscore,FILE * read, score oldscores,FILE * newfile) //function call
{
//points to the file that stores all number entered by the user
int copy=0,prev;
//open file for writing
do
{
printf("Please enter your number\n"); //outputs previous score by the user
scanf("%d",&guess);
system("CLR");
printf("\n\n");
allscores[0]++;
if(guess < number)
{
printf("this is too low. Please retry\n\n"); //increments each time the number is lower than the computer's number
allscores[1]++;
}
if(guess>number)
{
printf("this is too high. Please retry\n\n"); //increments each time the number is higher than the computer's number
allscores[2]++;
}
}while(guess!=number);
if(guess==number)
{
newscore.attempts = allscores[0];
newscore.lower = allscores[1]; //assigns all the current scores to the newscore variables
newscore.higher = allscores[2];
printf("congrats you got it right\n\n");
printf("Thank you for playing here is your score.\n\n");
printf("Attempts\t\t%d\n\nToo High\t\t%d\n\nToo Low\t\t\t%d",newscore.attempts,newscore.higher,newscore.lower); //outputs the newscores
}
if(allscores[0]<=oldscores.attempts)
{
fclose(read);
newfile=fopen("gameinfo.txt","w"); //writes the newscores to file
fprintf(newfile,"%d ",newscore.attempts);
fprintf(newfile,"%d ",newscore.higher);
fprintf(newfile,"%d \n",newscore.lower);
}
}
this is my guessgame2.h file
Code:
#define GUESSGAME2_H
typedef struct
{
int attempts;
int higher ;
int lower;
}score;