我正在编写一个基本上进入网页并将内容下载到用户定义的单独文件的 HTTP 客户端。我在写入文件本身时遇到了麻烦,但我遇到了一个奇怪的问题。我将在下面展示几个代码片段,但基本上当有
fprintf(stdout, "%s", htmlcontent);
其中 htmlcontent 定义为
char *htmlcontent;
它将整个 HTML 页面信息打印到标准输出。我还可以通过说 >myfile.txt 将此输出重定向到命令行中的文件(是的,我想比较文本文件而不是 html 文件)。
但是当我做这样的事情时:
fprintf(savedfile, "%s", htmlcontent);
savedfile 定义为
FILE *savedfile;
它是这样打开的:
savedfile = fopen(filename, "w");
其中文件名定义为
char *filename;
并设置为与其对应的命令行参数。当我执行第二种类型的 fprintf 将其打印到我的文件而不是标准输出时,我没有得到同样的结果,我不知道为什么。谁能帮我理解为什么会有任何区别?如果您希望我发布这两个不同的程序,以便您可以完整地查看它们,请告诉我,我会这样做。