我对freopen()的理解是否正确?

时间:2014-05-07 16:16:33

标签: c

根据我的研究,C中的freopen()由第三个参数组成,它是一个流指针。

所以假设我使用代码:

freopen("data.txt","w",stdout);
printf("hello world\");

当前流" stdout"现在要换换data.txt描述符或流?所以如果我现在完成了printf行......你好世界去了data.txt?

只是有点困惑。

2 个答案:

答案 0 :(得分:1)

请看这里的例子:

#include <stdio.h>

int main ()
{
   FILE *fp;

   printf("This text is redirected to stdout\n");

   fp = freopen("file.txt", "w+", stdout);

   printf("This text is redirected to file.txt\n");

   fclose(fp);

   return(0);
}

在此示例中,第一行打印到stdout,但由于freopen,第二行被定向到file.txt。 freopen将第三个参数的文件流中的输出重定向到第一个参数中文件的新文件流。

您可以在此处查看C参考中的函数说明:http://www.tutorialspoint.com/c_standard_library/c_function_freopen.htm

使用此资源可以节省您提问的时间,因为您的代码与示例相同。

答案 1 :(得分:0)

是的,&#34;你好世界&#34;将转到data.txt 但要小心,你错过了一个&#39; n&#39;在printf的末尾