Good day, i am new to this forum but i need some help, i ran this program in visual c++ and got this error: "Run-Time Check Failure #3 - The variable 'new file' is being used without being initialized," i ran this same program in borland 5.02 and it ran perfectly but in visual c++ it runs but it doesn't rite to the file, could someone please help me out? thanks in advance, here is the code:
Code:#include<conio.h>Code:#include<stdio.h> #include<stdlib.h> #include<time.h> #define TRUE 0 #define FALSE 1 typedef struct { int attempts; int higher ; int lower; }score; 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; } void play(int guess,int number,int allscores[],score newscore,FILE * read, score oldscores,FILE * newfile) //function call { do { printf("Please enter your number\n"); //outputs previous score by the user scanf("%d",&guess); system ("cls"); 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); } }



LinkBack URL
About LinkBacks



