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;
}
这个程序读入文件重定向到另一个文件,创建的另一个文件在哪打开?
如果用 > 展开
#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;
}
这个程序读入文件重定向到另一个文件,创建的另一个文件在哪打开?
如果用 > 展开
2个回答
展开全部
在C语言中,可以使用freopen将输入输出重定指耐向。
C语言的标准输入输出为stdin和stdout,这两个变唯羡春量的类型为FILE*类型,也就是说,标准输入输出操作,其本质还是文件操作。
当需要重定向时,可以调用
stdin = freopen("data.in","r",stdin);
stdout = freopen("data.out","w",stdout);
将标准输入重定向到data.in,将标准输派轿出重定向到data.out。
当调用该函数时,需要引用头文件stdio.h。
C语言的标准输入输出为stdin和stdout,这两个变唯羡春量的类型为FILE*类型,也就是说,标准输入输出操作,其本质还是文件操作。
当需要重定向时,可以调用
stdin = freopen("data.in","r",stdin);
stdout = freopen("data.out","w",stdout);
将标准输入重定向到data.in,将标准输派轿出重定向到data.out。
当调用该函数时,需要引用头文件stdio.h。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |