C语言输入输出重定向

#include<stdio.h>#include<stdlib.h>//forexit()#include<string.h>//forstrcpy(),strcat(... #include <stdio.h>
#include <stdlib.h> // for exit()
#include <string.h> // for strcpy(), strcat()
#define LEN 40

int main(int argc, char *argv[])
{
FILE *in, *out; // declare two FILE pointers
int ch;
char name[LEN]; // storage for output filename
int count = 0;

// check for command-line arguments
if (argc < 2)
{
fprintf(stderr, "Usage: %s filename\n", argv[0]);
exit(1);
}
// set up input
if ((in = fopen(argv[1], "r")) == NULL)
{
fprintf(stderr, "I couldn't open the file \"%s\"\n",
argv[1]);
exit(2);
}
// set up output
strncpy(name,argv[1], LEN - 5); // copy filename
name[LEN - 5] = '\0';
strcat(name,".red"); // append .red
if ((out = fopen(name, "w")) == NULL)
{ // open file for writing
fprintf(stderr,"Can't create output file.\n");
exit(3);
}
// copy data
while ((ch = getc(in)) != EOF)
if (count++ % 3 == 0)
putc(ch, out); // print every 3rd char
// clean up
if (fclose(in) != 0 || fclose(out) != 0)
fprintf(stderr,"Error in closing files\n");

return 0;
}
这个程序读入文件重定向到另一个文件,创建的另一个文件在哪打开?
如果用 >
展开
 我来答
风若远去何人留
推荐于2018-05-12 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450126
专业C/C++软件开发

向TA提问 私信TA
展开全部
在C语言中,可以使用freopen将输入输出重定指耐向。
C语言的标准输入输出为stdin和stdout,这两个变唯羡春量的类型为FILE*类型,也就是说,标准输入输出操作,其本质还是文件操作。
当需要重定向时,可以调用
stdin = freopen("data.in","r",stdin);
stdout = freopen("data.out","w",stdout);
将标准输入重定向到data.in,将标准输派轿出重定向到data.out。
当调用该函数时,需要引用头文件stdio.h。
FanyongYin
推荐于2017-11-25 · TA获得超过1054个赞
知道小有建树答主
回答量:1298
采纳率:100%
帮助的人:1009万
展开全部
这个两个文件都依赖于你在执型键模行程序的时候的输入的参数的,你的参数如果有全路径,那么直接在那个路径下就存在了;如亮基果没有路径仅仅是文件名,那么文件就在你当前执行程序时的路径之下

至于如何卜缓打开,在Windows command line下直接type就能看到内容了,Linux下用cat
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式