黑框初探

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

一、重定向

重定向是什么?

所谓重定向就是把某应用原来的操作对象改成别的。比如说,我这个程序原来是从键盘接收信息的,现在该从一个叫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.你的操作还是有问题哦!再看看哪里出错了吧!

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

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

时间: 2025-01-08 01:32:49

黑框初探的相关文章

word保存时标题变成黑框(mac版本)

参考:http://blog.sina.com.cn/s/blog_686020310101i2zu.html 参考文档中说的时windows版本的word,跟我mac处理方式有一些不同: word版本: 问题描述: 解决方法: 1,将焦点放到黑框右侧 2,按出commond,再按<向左方向键,选中黑框,当黑框变成灰色,松开按键. 3,重新选择对应的样式,并选择“更新以匹配所选内容”,便可恢复标题数字. 4,标题数字恢复

golang编译的程序在windows下不显示黑框

如题,一个编译参数,备忘: -ldflags="-H windowsgui" 别的平台不适用 golang编译的程序在windows下不显示黑框,布布扣,bubuko.com

DOS命令将黑框中查询到的信息保存到TXT等文件中

DOS命令将黑框中查询到的信息保存到TXT等文件中,布布扣,bubuko.com

python 调用cmd,不显示cmd黑框

python 调用系统命令的方式有很多 1.1   os.system(command) 在一个子shell中运行command命令,并返回command命令执行完毕后的退出状态.这实际上是使用C标准库函数system()实现的.这个函数在执行command命令时需要重新打开一个终端,并且无法保存command命令的执行结果. 1.2   os.popen(command,mode) 打开一个与command进程之间的管道.这个函数的返回值是一个文件对象,可以读或者写(由mode决定,mode默

c++为什么代码执行性后出现一个黑框(命令窗口)一闪而过解决办法

VS2012 输入代码执行后屏幕一闪而过不出现显示框: #include <iostream>int main (){ using namespace std; const int ArSize = 20; char name[ArSize]; char dessert[ArSize]; cout <<"Enter your name:\n"; cin.getline(name,ArSize); cout <<"Enter your fav

Ant 打包黑框闪退, 并且没有报错。

ant 打包的时候,闪退.太恶心了.我也是哭了,找了老半天,也不知道为什么Ant 连错误都没有报,就直接闪退了! 一般情况是黑框是显示错误的信息的. 吃一堑长一智啊!  坑爹的windows! 于是,我果断的截屏. error: 终于找到问题了: 看到黑框中 非法字符. 卧槽肯定是windows 搞鬼. 新来的哥们将工具类靠过来的,在Windows 中保存成UTF-8.  windows 这孩子 自作聪明的在前面加了一个字符,  65279  对应的字符.所以Ant 一编译到此处,就直接报错了.

【技术】label模拟去黑框按钮

效果图: label模拟去黑框普通button按钮 <br /><label class="button-wrapper"> <input type="button" class="button-fixed" value="登录" /></label><br />label模拟去黑框submit按钮<br /><label class="b

mfc调用cmd执行完保留黑框

mfc调用cmd的方法有很多,本文采用 ShellExecute ShellExecute(AfxGetMainWnd()->m_hWnd,L"open",L"cmd",L"/k ping 127.0.0.1",NULL, SW_SHOW ); 如上,即可保留黑框, 如果使用: ShellExecute(AfxGetMainWnd()->m_hWnd,L"open",L"cmd",L"

去除searchView的黑框去除

有黑框的效果 关键代码:在onQueryTextChange使用默认的setFilterText(newText);进行过滤导致 // 用户输入字符时激发该方法 @Override public boolean onQueryTextChange(String newText) { if (TextUtils.isEmpty(newText)) { // 清除ListView的过滤 lv.clearTextFilter(); } else { // 使用用户输入的内容对ListView的列表项进