Linux C Question

#include <stdio.h>
int main()
{
      FILE *fp;
       fp = fopen("test.txt", "w");
        int a[100];
        int count=0;
        int i;
        for(i=0; i < 100; i++)
              a[i]=i;
                                                                                                                             
        for(i=0; i < 100; i++)
       {
                if(count > 10)
                {
      fp=fopen("test.txt", "w");
      //fseek(fp, 0, SEEK_SET);
                     //rewind(fp);
                        count=0;
                }
                fprintf(fp, "%d  ", a[i]);
                count++;
         }
}

Please refer the code snippet above, I expect 90 to 100 to be in the file. But there is 1 to 10 in the file.
Could you please suggest a solution
sudarshantkAsked:
Who is Participating?
 
Jeff DarlingConnect With a Mentor Developer AnalystCommented:
You will definitely need fclose, but that won't solve all your problems.

You should close the file before attempting to open it again.

The way your code is setup, you will open and close the file 10 times.

your file will only have 99 in it at the end if you add fclose(fp) before the open in the If statement and after exiting the 2nd for loop.


#include <stdio.h>
int main()
{
      FILE *fp;
        int a[100];
        int count=0;
        int i;
 
        // open the file
        fp=fopen("test.txt", "w"); 
 
        // fill the array
        for(i=0; i < 100; i++) a[i]=i;
                                                    
        for(i=90; i < 100; i++)
        {
         fprintf(fp,"%d  ",a[i]);                 
        }
        fclose(fp);
        return 0;
}

Open in new window

0
 
ozoCommented:
fclose(fp);
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.