Thread: "Run-Time Check Failure #3

  1. #1
    Registered User
    Join Date
    Oct 2012
    Posts
    6

    "Run-Time Check Failure #3

    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);
    }
    
    }
    
    
    

  2. #2
    and the hat of int overfl Salem's Avatar
    Join Date
    Aug 2001
    Location
    The edge of the known universe
    Posts
    39,661
    Serial forum wanderer looking for incremental improvements to pass off as their own work.
    Run-Time Check Failure #3 - Dev Shed
    If you dance barefoot on the broken glass of undefined behaviour, you've got to expect the occasional cut.
    If at first you don't succeed, try writing your phone number on the exam paper.

  3. #3
    Registered User
    Join Date
    Oct 2012
    Posts
    6
    all i want is to get rid of the error salem, i did most of the work so i don't get why you said that

  4. #4
    Registered User
    Join Date
    Sep 2012
    Posts
    357
    Quote Originally Posted by Jevon Davis View Post
    "Run-Time Check Failure #3 - The variable 'new file' is being used without being initialized,"

    Code:
    /* ... */
    int main()
    {
    FILE *newfile, *read;
    /* ... code that doesn't change newfile ... */
    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
    /* ... */
    You are using newfile without initializing (or assigning a value to) it.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Replies: 12
    Last Post: 07-05-2012, 08:32 AM
  2. Run-Time Check Failure #2
    By juice in forum C Programming
    Replies: 3
    Last Post: 12-30-2011, 02:31 PM
  3. Run-Time Check Failure #2
    By mjskolly in forum C Programming
    Replies: 6
    Last Post: 08-23-2011, 07:58 AM
  4. Run-Time Check Failure #2 help
    By lazysam in forum C Programming
    Replies: 2
    Last Post: 04-29-2009, 09:14 AM
  5. Replies: 14
    Last Post: 11-17-2008, 12:31 PM