Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
243 views
in Technique[技术] by (71.8m points)

c - output to file

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

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

1 Reply

0 votes
by (71.8m points)

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).


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...