Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

If I had an array of integers I wanted to output to a text file..

void output()
{   
    for (i=0; i<10; i++)
        printf("%d ", values[i]);
}

How can I save the output() to text file using the method below?

void writeToFile()
{   
    file = fopen("file.txt","a+"); // apend file or create a file if it does not exist
    fprintf(file,"%d", *missing parameter*); // write
    fclose(file); // close file
    printf("File created. Located in the project folder.
", "");
}
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
232 views
Welcome To Ask or Share your Answers For Others

1 Answer

As an alternative to creating two functions (as per AareP's answer), you could add a destination parameter to the output() function:

void foutput(FILE *dest, int values[])
{   
    int i;

    for (i=0; i<10; i++)
        fprintf(dest, "%d ", values[i]);
}

You can then reimplement the original output() as a simple wrapper:

void output(int values[])
{
    foutput(stdout, values);
}

This might not seem too useful in this case, but I've put it here because this general pattern can be useful when the logic of the output function is more complicated. In general it's better to keep it in one place than to replicate it across multiple functions (it means you only have to fix bugs in one place, for one thing).


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...