码迷,mamicode.com
首页 > 其他好文 > 详细

黑框初探

时间:2018-11-03 20:22:29      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:stderr   open   输入   c函数   原来   控制台   执行文件   tde   键盘   

我们看到的黑框其实是控制台,我们可以在上面做一些操作,来探索计算机的奇妙之处....

一、重定向

重定向是什么?

所谓重定向就是把某应用原来的操作对象改成别的。比如说,我这个程序原来是从键盘接收信息的,现在该从一个叫config.ini的文件中接收信息了;本来输出的信息都显示在屏幕上的,现在我不显示在屏幕上了,我要输出到result.txt文本中保存起来。

  怎么做

  方法一:freopen

  如果你手中有源代码的话,你只需要在代码的前面加一句话:

  FILE *stream;

  stream = freopen( "out.txt", "a+", stdout );

  就行了。这样,你就把程序中原定输出到屏幕的信息重定向到out.txt中了,且不覆盖out.txt中的内容,只是把新的输出追加在文件尾。这是一个ANSI C函数,所以是跨平台的。具体可以参考MSDN。

  方法二、管道命令

  如果非常不幸地,你只有可执行文件,而没有源代码可以修改,操作系统为你提供了管道命令。在windows cmd命令中有两个管道命令是专门用来进行I/O重定向的。

  1. >,>>输出重定向命令

  将一条命令或某个程序输出结果的重定向到特定文件中, > 与 >>的区别在于,>会清除调原有文件中的内容后写入指定文件,而>>只会追加内容到指定文件中,而不会改动其中的内容。

  2. < , >& , <&输入重定向命令

  < 从文件中而不是从键盘中读入命令输入。

  >& 将一个句柄的输出写入到另一个句柄的输入中。

  <& 从一个句柄读取输入并将其写入到另一个句柄输出中。

  有了这两个,我如果想把程序中原定输出到屏幕的信息重定向到out.txt,且只追加不覆盖原有内容的话,就可以这样做:

  command(程序名) >> out.txt

  更进一步地,如果我想把原来打印到stderr和stdout的信息全部重定向到一个文件out.txt中,也可以:

  command(程序名) >> out.txt  1>&2

  这里的1和2分别是stdout和stderr在系统中的句柄,有:

  STDIN      0 键盘输入

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

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

操作流程:

1.Windows键+R打开“运行”对话框,输入cmd(command);

技术分享图片

2.点击确定,进入控制台(会显示你的版本信息)

技术分享图片

3.输入正确的路径及可执行文件(格式应正确)

如,我是在E盘Desktop上加了一个可以算a+5的可运行程序,然后将2.txt中的5作输入,在3.txt中输出10。

技术分享图片

2.txt内容为:

技术分享图片

 

注:

先输入cd(移动目录文件夹),再输入E:

技术分享图片

最后一行表示操作已经成功,可以看到在你的操作下系统自己添加了3.txt。

技术分享图片

3.txt的内容为:

技术分享图片

 

 e.g.acm<1.txt>2.txt效果为将1文本中的东西在acm可执行文件里输入,然后新建2文本文件将输出保存。

若运行不出来,出现如下图所示:

技术分享图片

则可能的原因是:

1.计算机硬盘未经分区。

2.未设置环境变量

3.你的操作还是有问题哦!再看看哪里出错了吧!

可以按照上面的操作多多拓展!

 

黑框初探

标签:stderr   open   输入   c函数   原来   控制台   执行文件   tde   键盘   

原文地址:https://www.cnblogs.com/yangnansuper/p/9899492.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!