程序怎么重定向输出到文本

程序怎么重定向输出到文本,第1张

DOS下的重定向命令,将运行结果输出到一个TXT文件中:

命令>TXT文件全名

以上就是格式,命令可以是DOS命令或批处理文件名。

给你的方法是:1打开电脑的运行。2输入CMD回车。3输入cd /d 你的小程序的路径。4输入小程序名>atxt。5在小程序所在路径下找文件atxt就是

你应该发在脚本版块里(话说你的不就是DOS命令DIR吗)

若要返回到显示 (默认 stdout) 的 stdout,使用下面的调用:freopen( "CON", "w", stdout ); 在两种情况下检查以确定的重定向实际发生的 freopen() 的返回值。下面是简短说明的标准输出重定向的程序:回到顶端示例代码// Compile options needed: none #include <stdioh> #include <stdlibh> void main(void) { FILE stream ; if((stream = freopen("filetxt", "w", stdout)) == NULL) exit(-1); printf("this is stdout output\n"); stream = freopen("CON", "w", stdout); printf("And now back to the console once again\n"); } 该程序假定要向该程序的结尾控制台重定向该标准输出。

Unix 命令默认从标准输入设备(stdin)获取输入,将结果输出到标准输出设备(stdout)显示。一般情况下,标准输入设备就是键盘,标准输出设备就是终端,即显示器。

输出重定向

命令的输出不仅可以是显示器,还可以很容易的转移向到文件,这被称为输出重定向。

命令输出重定向的语法为:$ command > file

这样,输出到显示器的内容就可以被重定向到文件。

例如,下面的命令在显示器上不会看到任何输出:$ who > users

打开 users 文件,可以看到下面的内容:$ cat users

oko tty01 Sep 12 07:30

ai tty15 Sep 12 13:32

ruth tty21 Sep 12 10:10

pat tty24 Sep 12 13:07

steve tty25 Sep 12 13:03

$

输出重定向会覆盖文件内容,请看下面的例子:$ echo line 1 > users

$ cat users

line 1

$

如果不希望文件内容被覆盖,可以使用 >> 追加到文件末尾,例如:$ echo line 2 >> users

$ cat users

line 1

line 2

$

输入重定向

和输出重定向一样,Unix 命令也可以从文件获取输入,语法为:command < file

这样,本来需要从键盘获取输入的命令会转移到文件读取内容。

注意:输出重定向是大于号(>),输入重定向是小于号(<)。

例如,计算 users 文件中的行数,可以使用下面的命令:$ wc -l users

2 users

$

也可以将输入重定向到 users 文件:$ wc -l < users

2

$

注意:上面两个例子的结果不同:第一个例子,会输出文件名;第二个不会,因为它仅仅知道从标准输入读取内容。

重定向深入讲解

一般情况下,每个 Unix/Linux 命令运行时都会打开三个文件:

标准输入文件(stdin):stdin的文件描述符为0,Unix程序默认从stdin读取数据。

标准输出文件(stdout):stdout 的文件描述符为1,Unix程序默认向stdout输出数据。

标准错误文件(stderr):stderr的文件描述符为2,Unix程序会向stderr流中写入错误信息。

默认情况下,command > file 将 stdout 重定向到 file,command < file 将stdin 重定向到 file。

如果希望 stderr 重定向到 file,可以这样写:$command 2 > file

如果希望 stderr 追加到 file 文件末尾,可以这样写:$command 2 >> file

2 表示标准错误文件(stderr)。

如果希望将 stdout 和 stderr 合并后重定向到 file,可以这样写:$command > file 2>&1

或$command >> file 2>&1

如果希望对 stdin 和 stdout 都重定向,可以这样写:$command < file1 >file2

command 命令将 stdin 重定向到 file1,将 stdout 重定向到 file2。

全部可用的重定向命令列表

命令

说明

command > file 将输出重定向到 file。

command < file 将输入重定向到 file。

command >> file 将输出以追加的方式重定向到 file。

n > file 将文件描述符为 n 的文件重定向到 file。

n >> file 将文件描述符为 n 的文件以追加的方式重定向到 file。

n >& m 将输出文件 m 和 n 合并。

n <& m 将输入文件 m 和 n 合并。

<< tag 将开始标记 tag 和结束标记 tag 之间的内容作为输入。

通常写程序,调试程序时我们都是直接用键盘输入,向屏幕输出。

重新定向的好处是:

我们可以保持原来写的程序一字不变,但允许它直接输出到数据文件。

我们可以保持原来写的程序一字不变,但允许它直接 用 数据文件 输入。

特别是当程序较大,输出输入语句很多,“一字不变”多么省事。

c 语言 提供了 freopen() 函数 可以 做到这点,例如:

freopen("deftxt", "w", stdout); // 输出到数据文件deftxt

freopen("abctxt", "r", stdin); // 从 文件 abctxt 读入数据

加上 if () 就可以根据当时条件决定 转向文件 还是 不转向,多一个灵活性。

-----------------

附带说说:

更简单的是 拍入 跑程序 命令 时,拍入

my_progexe > deftxt

或 my_progexe >> deftxt

屏幕 输出 就 转入 deftxt, 上面,>> 是 续加文件, > 是 新文件。

拍入

my_progexe < abctxt

就用 abctxt 内容代替了 键盘输入。

直接使用输出重定向到你想要的文件即可,不过将所有的控制到信息输出到一个文本文件,只有两个办法:

①:修改所有程序的输出路径:printf函数 echo几乎是不可能完成的任务

②:修改linux的标准输出路径:

句柄 句柄的数字代号 描述

STDIN 0 键盘输入

STDOUT 1 输出到命令提示符窗口

STDERR 2 错误输出到命令提示符窗口

将标准输出 标准输出的默认设置更改为你要保存的文件,这样就会控制台的信息就会输出到你指定的文件里面

以上就是关于程序怎么重定向输出到文本全部的内容,包括:程序怎么重定向输出到文本、如何将标准输出重定向到文件,从 Visual C/c + + 程序、shell输入输出重定向 有什么作用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9316412.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存