精华内容
下载资源
问答
  • C语言重定向输入输出的方法

    千次阅读 2016-08-03 14:46:13
    在C标准库头文件中有一个freopen的函数,用于重定向输入输出流。该函数可以在不改变代码原貌的情况下改变输入输出环境,但使用时应当保证流是可靠的。函数原型是  FILE *freopen(const char *filename,const char*...

           C标准库头文件<stdio.h>中有一个freopen的函数,用于重定向输入输出流。该函数可以在不改变代码原貌的情况下改变输入输出环境,但使用时应当保证流是可靠的。函数原型是

      FILE *freopen(const char *filename,const char*mode,FILE *stream);

      参数说明:

      filename 需要重定向到的文件名或文件路径。

      mode   代表文件访问权限的字符串,"r"表示只读,"w"表示只写,"a"表示追加写入。

      stream 需要被重定向的文件流。

    返回值:如果成功,则返回该指向该输出流的文件指针,否则返回为NULL。

    当标准输出stdout被重定向到指定文件后,如何把它重定向回原来“默认”的输出设备(即显示器)呢?
    C标准库是不支持的。没有任何方法可以恢复原来的输出流。但是,存在依赖具体平台的实现。
    在操作系统中,命令行控制台(即键盘或者显示器)被视为一个文件,既然是文件,那么就有“文件名”。命令行控制台文件在DOS操作系统和Windows操作系统中的文件名为"CON",在其它的操作系统(例如Unix、Linux、Mac OS X、Android等等)中的文件名为"/dev/tty"。
    所以,在Windows中可以使用
    freopen( "CON", "w", stdout );
    其它操作系统中使用:
    freopen( "/dev/tty", "w", stdout );
    这样就可以恢复原来输出设备的使用。


    展开全文
  • 我使用 <p>```cpp ...<p>//在这里我想重新恢复标准输入  cin >> a;    cout << a << '\n';  return 0; <p>} <p>```  </p>
  • C语言重定向

    万次阅读 多人点赞 2017-03-14 16:07:06
    Unix、Linux和当前的DOS版本都能够重定向输入输出。输入重定向可以使程序能够使用文件代替键盘作为输入,输出重定向则使程序能够使用文件代替屏幕作为输出。 一、 输入重定向 输入重定向即

    近段时间,又把C primer plus第五版翻了一下,查看以前由于不理解而跳过的地方,现在来看时,结合在其他书上看到的东西(在linux书上看到关于重定向的使用),发现自己居然能够理解了。
    Unix、Linux和当前的DOS版本都能够重定向输入和输出。输入重定向可以使程序能够使用文件代替键盘作为输入,输出重定向则使程序能够使用文件代替屏幕作为输出。
    一、 输入重定向
    输入重定向即用文本文件代替键盘当作程序的输入。 ‘ < ‘ 符号是Unix、Linux和DOS的重定向运算符。该运算把文件和stdin流关联起来,将该文件的内容引导至程序。程序本身并不知道(或关心)输入是来自文件而不是来自键盘。C将文件和I/O设备置于相同的地位,所以现在这个文件就是I/O设备。我们来写个程序感受一下到底是怎么用的。首先编写一个Reput.c文件,代码如下所示。

    #include<stdio.h>
    int main()
    {
        char ch;
        while ((ch = getchar())!= EOF )     //读取输入字符
        {
            putchar(ch);       //输出字符
        }
        putchar('\n');
        return 0;
    }
    

    编译程序得到一个.exe可执行文件。DOS下使用cmd打开命令行,进入生成的.exe所在目录。输入命令: Reput.exe < test.txt。如图1所示。 test.txt里的内容如图2所示被印出来。

    图1 重定向输入


    图2 test.txt的内容
    重定向的文件可以自己选择,是文本文件即可。文本文件是包含文本的文件,即在该文件的中数据以人类可读的字符形式存储,如它可以是一篇短文或用C编写的程序。而包含机器语言指令的文件就不是文本文件。

    二、 重定向输出
    输出重定向就是用文本文件代替屏幕当作程序的输出。’ > ’运算符是另一个重定向运算符。假设我们要将键盘输入的数据发送至一个名为test1.txt的文件。通过下面这条语句就可以完成:Reput.exe > test1.txt。该运算符会导致建立一个名为test1.txt的新文件供我们使用,然后将Reput.exe的输出(也就是说,我们嵌入的字符的副本)重定向到该文件。该重定向将stdout从显示设备(屏幕)重定向到test1.txt文件。如果您已经有一个名为test1.txt的文件,则通常会删除该文件然后用新的文件代替。操作过程如图3所示,按Ctrl+Z(DOS中)结束输入。此时,我们可以通过查看到有个test1的txt文本,打开如图4所示。

    图3 重定向输出


    图4 test1.txt的内容
    此时我们也可以借用上面说过的重定向输入来查看test1.txt的内容。

    补充:
    1、重定向运算符是将一个可执行程序与一个数据文件连接起来,该运算符不能用于一个数据文件与另外一个数据文件的连接,也不能用于一个程序和另一个程序的连接。
    2、使用这些运算符时,输入不能来自一个以上的文件,输出也不能定向至一个以上的文件。
    3、’>>’运算符用累加的方法将数据输出到指定的文件上,不会覆盖已有的数据。

    展开全文
  • 通过不同的渠道重定向输入至文件和从文件输出 文件输入代码如下 #include <stdio.h> //重复输入,指导文件结尾 int main(void) { int ch; while((ch=getchar()) != EOF){ putchar(ch); } return 0; ...

    通过不同的渠道重定向输入至文件和从文件输出

    文件输入代码如下

    #include <stdio.h>
    //重复输入,指导文件结尾 
    int main(void)
    {
    	int ch;
    	while((ch=getchar()) != EOF){
    		putchar(ch);
    	}
    	
    	return 0;
     } 
    

    上面文件是直接从键盘输入和屏幕显示

    接下来重定向为输入至文件和从文件输出

    1.重定向输入
    在这里插入图片描述
    在cmd命令符里执行方法,也输入程序名文件echo_eof.exe,然后输入重定向符号<,最后输入文本文件名。

    文件里的内容为
    在这里插入图片描述

    2.重定向输出
    在这里插入图片描述
    cmd命令差不多,但是重定向符变成>

    3.出现的问题
    重定向输出的时候会有时乱码
    在这里插入图片描述
    等待解决

    展开全文
  • C语言标准输入输出重定向

    千次阅读 2018-07-13 18:26:01
    标准输入重定向:freopen("a.txt","r"...#endif在加了这句,本地调试的时候从文件读取输入数据,在线测试的时候还是从标准输入读取输入数据 标准输出重定向:freopen("b....

    函数freopen            头文件: stdio.h/cstdio

    标准输入重定向:

    freopen("a.txt","r",stdin);

    有了这句以后cin, scanf, getc, gets都从文件”a.txt”里来啦

    这个在OJ里特别有用

    #ifndef ONLINE_JUDGE
    	freopen("E.txt","r",stdin);
    #endif

    在加了这句,本地调试的时候从文件读取输入数据,在线测试的时候还是从标准输入读取输入数据

     

    标准输出重定向:

    freopen("b.txt","w",stdout);

    有了这句以后cout, printf, putc, puts都写到文件”b.txt”里去啦


    展开全文
  • 关于C语言输入输出重定向

    万次阅读 2016-04-11 21:19:06
    C语言的标准输入输出为stdin和stdout,这两个变量的类型为FILE*类型,也就是说,标准输入输出操作,其本质还是文件操作。 当需要重定向时,可以调用 #include freopen("d:\\data_in.txt","r",stdin); 将输入定向为...
  • C语言输入输出重定向

    千次阅读 2014-08-23 12:52:31
    许多操作系统,包括MS-DOS和UNIX,可以对输入输出进行重定向。为了理解这个机制,首先考虑下面这个UNIX命令: ls 这个命令在屏幕上显示文件的目录列表(MS-DOS中的对应命令是DIR)。现在考了下面这个命令: ls...
  • #include ... /*输入输出重定向,输入数据将从in.txt文件中读取 **输出数据将保存在out.txt文件中 */ freopen("in.txt","r",stdin); freopen("out.txt","w",stdout); while(scanf("%d %d", &a,
  • 引言 在写C语言程序时,经常会出现...最简单的方法是使用文件的重定向输入输出 #include&lt;stdio.h&gt; int main() { freopen("input.txt","r",stdin); freopen("outout.tx...
  • 使用的理由(范围):如果输入数据很庞大,需要一次又一次的重新输入和调试时可采用本函数。 freopen()函数: 1.格式 FILE*freopen(constchar*filename,constchar*mode,FILE*stream); 2.参数说明 filename:要...
  • 最近在学c语言基础(Head ...本文简述在win和linux系统下,用c程序实现重定向输入输出流 首先标准输入输出重定向命令为for windows:runcode <inputfile.txt> outputfile.txt 其中funcode为编译后的可执行程...
  • C语言的文件操作 freopen 今天做USACO 用到了文件的操作。 之前做USACO只是格式化的些 写 freopen("xxx.in","r",stdin) 和"freopen("xxx.out","w",stdout)" 百度百科上是这么介绍的:  函数名: freopen  功...
  • 在我们做Online Judge的时候,OJ基本上都是用标准输入输出。但如果每次调试的时候也都是从...使用函数freopen(), freopen是被包含与stdio.h头文件中,用于重定向输入输出流的函数。该函数可以在不改变代码原貌的情况
  • C语言中的重定向输入

    2019-09-25 06:53:01
    所谓重定向输入,就是不用从键盘一组一组的输入数据,而是保存为一个文件,直接将该程序的测试数据进行输入即可;使用freopen()函数会将标准输入stdin重定向到文件input.txt(这个文件名自己定义);freopen("input....
  • linux文件描述符:可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以实现文件的读写操作。 用户可以自定义文件描述符范围是:3-num,这个最大数字,跟用户的...
  • 1. 标准输入输出我们知道,执行一个shell命令行时通常会1. 标准输入输出我们知道,执行一个shell命令行时通常会自动打开三个标准文件,即标准输入文件(stdin),通常对应终端的键盘;标准输出文件(stdout)和标准...
  • c语言文件输入输出

    万次阅读 2017-09-30 11:28:41
    重定向的方法写起来简单、自然,但是不能同时读写文件和标准输入输出;fopen的写法稍有繁琐,但是灵活性比较大(例如可以重复打开并读写文件)。如果想把fopen版的程序改成读写标准输入输出,只需要赋值“fin=stdin;...
  • 测试C语言文件输出输入重定向时return上面的system(“pause)失效 解决方法 将标准输入输出流定向回控制台即可 int main(void) { int ch; FILE *file = NULL; file = freopen("C:\\Users\\a\\Desktop\\111...
  • 关于printf重定向到串口的问题简单地说:想在mdk 中用printf,需要同时重定义fputc函数和避免使用semihosTIng(半主机模式),标准库函数的默认输出设备是显示器,要实现在串口或LCD输出,必须重定义标准库函数里调用...
  • C语言输入输出重定向到文件与管道

    千次阅读 2012-05-31 23:43:41
    输出定向到文件 testout.c: #include int main() { printf( "xxoo\n" ); return ( 0 ); } 生成testout.exe。 cmd下输入: testout.exe>D:\\out.txt 则123.txt中被写入了"xxoo"。若使用>>则表示“追加”,...
  • 1、输入输出重定向到内存 setbuf函数具有打开和关闭缓冲机制。为了带缓冲进行I/O,参数buf必须指向一个长度为BUFSIZ(定义在stdio.h头文件中)的缓冲区。通常在此之后该流就是全缓冲的,但是如果该流与一个终端设备...
  • 在了解重定向之前,先来看看linux 的文件描述符。 linux文件描述符:可以理解为...linux启动后,会默认打开3个文件描述符,分别是:标准输入standard input 0,正确输出standard output 1,错误输出:error output .
  • linux shell数据重定向输入重定向输出重定向)详细分析 在了解重定向之前,我们先来看看linux 的文件描述符。 linux文件描述符:可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作...
  • 写了一个从文件输入字符并输出文件所有的代码,但是才CMD运行的时候拒绝访问,请问是什么原因呢? 代码如下: #include int main(void){ char a[20]; int count=0; while((a[count]=getchar())!=EOF){ putchar...

空空如也

空空如也

1 2 3 4 5 ... 16
收藏数 310
精华内容 124
关键字:

c语言重定向输入输出

c语言 订阅