精华内容
下载资源
问答
  • //ReceiptFees值equals等于val值时,node的所有子节点打印到html页面 if (node.ChildNodes[i].ChildNodes[1].InnerText.Equals(val)) { String s1 = node.ChildNodes[i].ChildNodes[0].InnerText;//...
  • 窗口之间有层次区别,在多于一个窗口重叠区域里,只会显示位于顶层的窗口内容。  你点击屏幕上一个点时候,你就选择了处于被点击位置最顶层窗口,并且这个窗口就会被移到所有窗口的最顶层,而剩余的窗口...
  • 例七:一个朋友发信息过来,我的电脑便出现了错误信息:“0x772b548f”指令引用的“0x00303033”内存,该内存不能为 “written”,然后QQ自动下线,而再打开QQ,发现了他发过来的十几条的信息。解决方法:这是对方利用...
  • 初始化数据:点击主窗口左侧的"系统设置" →"初始化数据"按钮,打开初始化数据窗口,在这里可以删除指定的数据,例如:开始使用本软件前可以先删除所有的信息,以便于重新录入本公司的一些房源和客户等信息。...
  • * 原因在于:我们想绘图颜色与文字显示的不一样 * */ g.setColor(Color.DARK_GRAY); //画出横线 /* * drawLine(int x1, int y1, int x2, int y2) * 函数功能为: * 在此图形上下文坐标系中...
  • 接关闭这个对话框,便不能进入主窗口,整个程序也退出。进入主窗口后, 我们按下按钮,会弹出一个对话框,无论如何关闭这个对话框,都会回到主窗口。 实现原理: 程序里我们先建立一个主工程,作为主界面,然后...
  • “如果此参数为HWND_BROADCAST,则消息被发送到系统中所有顶层窗口,包括无效或可见非自 身拥有的窗口、被覆盖的窗口和弹出式窗口,但消息被发送到子窗口。”这句话是包括最小化同时不显示在任务栏窗体...
  • 7)增加曲线数据分析,在查看股票中,可以直接跳转到东方财富页面查看相关信息,点击指标之后使用Bokeh多达 17 个指标数据绘图,进行图表展示。 bokeh 绘图指标数据: 然后根据3个指标进行股票数据计算: KDJ...
  • 服务端: 服务端程序启动之后弹出...用户点击在线好友的昵称点击选择好友即可向该好友发送信息,发送成功之后同时要其发送的信息以及时间信息展示在自己的窗口之中,同时也要在指定好友的窗口之中有所显示以及时间信息
  • 语言版本不一致时,不能用“升级 ”,只能新安装。新安装不存在系统兼容性问题。 3. 接受协议,输入注册码。 4. 选择可支持其它东亚语种(Install support for East Asian languages),当然也包括中文。 ...
  • 用 object 可以表示所有的类型。 预定义类型 下表列出了预定义类型,并说明如何使用。 类型 object 说明 所有其他类型的最终 基类型 字符串类型; 字符串是 Unicode 字符序列 8 位有符号整型 16 位有符号整型 32 位...
  • Viewport 移动设备上Viewport就是设备屏幕上用来显示网页一块区域,即浏览器上用来显示网页那部分区域。Viewport局限于浏览器可视区域大小,可能比浏览器可视区域要大,也可能比浏览器可视区域要...
  • MFC程序框架剖析

    2015-03-05 09:53:19
    应用程序能够通过句柄访问相应的对象的信息,但是句柄不是一个指针,程序不能利用句柄来直接阅读文件中的信息。如果句柄不用在I/O文件中,它是毫无用处的。 句柄是Windows用来标志应用程序中建立的或是使用的唯一...
  • C++标准流重定向及cout和cerr区别

    千次阅读 2013-04-06 00:21:30
    我们把一个win32控制台程序重构成界面程序时候,之前的所有cout输出语句就变得没用了,而不得重新查找替换成其他输出显示方式。或者要输出大量信息的时候,想要看某一步输出,却很快地被新输出覆盖了...

    前言


    当我们把一个win32控制台的程序重构成界面程序的时候,之前的所有cout输出语句就变得没用了,而不得不重新查找替换成其他输出显示方式。或者要输出大量信息的时候,想要看某一步的输出,却很快地被新的输出覆盖了(尤其在输出窗口的缓冲区设得比较小的时候)。在这些情况下,如果能快捷地将输入输出流重定向到文件中,一切就显得迎刃而解了。


    正文


    一、C++标准输入输出流的重定向

    C++的标准输出流cout默认是输出到显示设备中,标准输入流cin默认是从键盘中读取数据。而在很多情况下,打印到屏幕的信息太多而来不及查看,我们想把输出的东西保存到文件中,以便后续的查看分析。利用cout的重定向就可以在输出到屏幕和输出到文件之间轻松切换。

    1、利用cmd

    #include <iostream>
    #include <fstream>
    using namespace std;
     
    void main()
    {
        cout<<"Hello world"<<endl; 
        char line[100];
        cin>>line;
        cout<<line<<endl;
    }
    上述代码是一个简单的演示例子,输出一行“Hello world”,读入一个字符串并且打印出来,在vs2010中运行时,结果如下:(其中第二行是从键盘输入的字符)

    要把cout和cin重定向到文件中,方法如下:

    打开cmd,转到程序目录下,执行命令:

    TestStream < input.txt > output.txt

    即可,其中TestStream是.exe的文件名。


    Input.txt存放的是要输入的字符串,需要实现新建好。output.txt是输出文件,会自动生成。运行后就把字符输出到文件中,而不打印到屏幕。

     

    2、利用rdbuf函数

    上面是利用cmd把cout和cin重定向到文件中的方法,但是在利用visual studio开发的时候,总是利用cmd运行程序就显得很不方便,此时的解决方法如下:

    #include <iostream>
    #include <fstream>
    using namespace std;
     
    ifstream fin("input.txt");
    ofstream fout("output.txt");
    streambuf *cinbackup;
    streambuf *coutbackup;
    void main()
    {
        coutbackup= cout.rdbuf(fout.rdbuf());
        cinbackup= cin.rdbuf(fin.rdbuf());
        cout<<"Hello world"<<endl; 
        char line[100];
        cin>>line;
        cout<<line<<endl;
        // restore standard streambuf
        cin.rdbuf(cinbackup);
        cout.rdbuf(coutbackup);
    }

    其中rdbuf是流缓冲区设置的函数,它有两种重载形式:

    get (1)

    streambuf* rdbuf() const;

    set (2)

    streambuf* rdbuf (streambuf* sb);

    Get/set stream buffer

    The first form (1) returnsa pointer to the stream buffer object currently associated with the stream.
    The second form (2) also sets the object pointed by sb as the stream buffer associated with the stream and clears the error state flags.

    (更详细介绍请参看http://www.cplusplus.com/reference/ios/ios/rdbuf/

    cout.rdbuf(fout.rdbuf())这个语句的意思就是把cout的流缓冲区设置成ofstream的流缓冲区,这样cout所输出的信息都被输出到文件中。

    代码中最后两句话是为了把标准输入输出流的缓冲区恢复成原有设置。

     

    对于C形式的printf和scanf,上述设置并不起作用,可以用一下设置完成:

    freopen("input.txt","r",stdin);
    freopen("output.txt","w",stdout);

     


    二、cout和cerr的区别

    1、cout对应于标准输出流

         cerr对应于标准错误流

    2、cout和cerr的主要区别就是cout可以利用cmd命令行参数的方式进行重定向,而cerr则不行。

    #include <iostream>
    using namespace std;
     
    void main()
    {
        cout<<"Hello world"<<endl; 
        cerr<<"Hello error"<<endl;
        char line[100];
        cin>>line;
        cout<<line<<endl;
    }

    用cmd运行,屏幕打印出cerr的信息,而cout的信息被输出到文件中。



    3、cerr不被缓冲,也就说错误消息可以直接发送到显示器,而无需等到缓冲区或者新的换行符时,才被显示。而cout是一个有缓冲的输出。

    关于这一点,很多的资料上都有提到,但是cerr也可以通过rdbuf方法重定向到文件中

    #include <iostream>
    #include <fstream>
    using namespace std;
     
    ifstream fin("input.txt");
    ofstream fout("output.txt");
    streambuf *cinbackup;
    streambuf *coutbackup;
    void main()
    {
        coutbackup= cout.rdbuf(fout.rdbuf());
        cinbackup= cin.rdbuf(fin.rdbuf());
        cerr.rdbuf(fout.rdbuf());
        cout<<"Hello world"<<endl; 
        cerr<<"Hello error"<<endl;
        char line[100];
        cin>>line;
        cout<<line<<endl;
        // restore standard streambuf
        cin.rdbuf(cinbackup);
        cout.rdbuf(coutbackup);
    }

    此时屏幕输出如下:


    output.txt文件内容如下:


    按照rdbuf的说明,这是设置流对应的缓冲区指针的,如果按照cerr不被缓冲的说法,那这个设置为什么生效了?

    查看了一下cerr的定义(在iostream中)

    __PURE_APPDOMAIN_GLOBAL extern _CRTDATA2 istream cin, *_Ptr_cin;
    __PURE_APPDOMAIN_GLOBAL extern _CRTDATA2 ostream cout, *_Ptr_cout;
    __PURE_APPDOMAIN_GLOBAL extern _CRTDATA2 ostream cerr, *_Ptr_cerr;
    __PURE_APPDOMAIN_GLOBAL extern _CRTDATA2 ostream clog, *_Ptr_clog;
    也试图在调试时跟踪cout和cerr的执行过程,但是还是没有发现这两者的区分。

    这个问题有待深究。mark。

    参考


    http://www.cnblogs.com/kex1n/archive/2012/01/06/2314985.html

    http://blog.csdn.net/hjs1122/article/details/6127712

    http://blog.csdn.net/yclz/article/details/1570952

    展开全文
  • 如果保存数据库文件计算机硬盘信息与用户注册硬盘信息不一致,则“Security”窗体和“MTR Review”窗体不能打开; 以分权方式在各帐户间分配权限,“管理员”和“管理员组”没有任何权限; “客户管理员”是...
  • 实例047——创建完全只读(没有输入焦点,不能选择)编辑框 实例048——实现只能输入小数编辑框控件 实例049——使用Rich Edit编辑框格式化显示文本 实例050——设定静态文本框背景色和文本颜色 实例051...
  • excel使用

    2012-11-25 17:06:01
    ”则隐藏所有的输入值。 自定义格式只改变数据的显示外观,并改变数据的值,也就是说影响数据的计算。灵活运用好自定义格式功能,会给实际工作带来很大的方便。5、绘制函数图象做教学工作的朋友们一定会遇到画...
  • 发生周期性变化信号,因待测信号不规则,不能直接送入FPGA 芯片中处 理,所以应该首先对待测信号进行放大、降压、与整形等一系列处理。 (2)分频电路 处理过信号4 分频,这样可以频率计测量范围扩大4 倍...
  • 2004-2010软考程序员真题

    热门讨论 2012-09-27 12:33:00
     32、在Windows98中,若己选定某文件,不能将该文件复制到同一文件夹下操作是  A)用鼠标右键将该文件拖动到同一文件夹下 B)先执行"编辑"菜单中复制命令,再执行粘贴命令  C)用鼠标左键将该文件拖动到同一...
  • 4.7 我有些解析外部结构的代码,但是它却崩溃了,显示出了“unalignedaccess”(未对齐的访问)的信息。这是什么意思? 作为函数参数的指针 4.8 我有个函数,它应该接受并初始化一个指针:voidf(int*ip){...
  • LINGO软件学习

    2009-08-08 22:36:50
    外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将被包含在主窗口之下。在主窗口内的标题为LINGO Model – LINGO1的窗口是LINGO的默认模型窗口,建立的模型都都要在该窗口内编码实现。下面举两个例子...
  • ●“通用信息列表”标签中的信息不能按使用设定的专题数组参数显示。 ●“当前位置导航”标签出错。 ●“内容信息列表”标签设置displayAuthor=“TRUE”这个参数还是无法输出作者。 ●默认弹出公告页模板中的...
  • dreamweaver各种组件

    2008-06-26 16:55:56
    Background that fit 这个Object作用是插入一个图象作为网页背景,而当显示此网页 浏览窗口的大小发生变化时,背景图片会自动调整大小以适合当前窗口 大小。 Shockwave Flash 3-4 这是一个专为Flash4设计...
  • Excel VBA实用技巧大全 附书源码

    热门讨论 2010-10-08 18:59:24
    01044不显示警告信息对话框 01045设置使用打印机 01046安装加载宏 01047利用GetOpenFilename方法获取文件名 01048利用GetOpenFilename方法获取某类型文件名 01049改变GetOpenFilename方法默认路径 01050改变...
  • 美萍足浴软件1010v2

    2010-04-29 13:27:13
    删除预订:在预订管理窗口中选择一条要删除预订信息,然后点击预订管理窗口“删除”按钮,系统给出提示“删除后将不能恢复,确定删除吗?”,点击“确定”永久删除所选中预订信息,点击“取消”不做...
  •  2006 Turbo BorlandBDS 2006拆分成几个独立版本(Delphi for win32、Delphi for .net、C#、C++ Builder),而且不能同时安装两个不同版本。由于BorlandIDE生产部份独立成为一家名为codegear公司,所以这个...
  • 119. 修正首页明星插件不能单独显示第二行错误 120. 后台重做论坛列表有一定提速 121. 重新生成用户排名及凌晨数据更新现在更稳定了 122. 修复查看用户资料时,非版主区版或总版主能显示担任信息的问题 ...
  • 仿美萍房产中介管理系统源码20110803

    热门讨论 2011-08-03 16:47:05
    初始化数据:点击主窗口左侧的"系统设置" →"初始化数据"按钮,打开初始化数据窗口,在这里可以删除指定的数据,例如:开始使用本软件前可以先删除所有的信息,以便于重新录入本公司的一些房源和客户等信息。...
  • ASP.NET网页代码模型及生命周期

    热门讨论 2009-07-28 14:22:11
    在页面控件中,如果有多个自定义控件使用多个不同控件来显示不同数据结构,为了让这些页面控件能够在在页面上协调工作,则需要使用控件状态来保护控件,同时,控件状态是不能被关闭。同样,控件状态也有它...

空空如也

空空如也

1 2 3 4 5 ... 14
收藏数 274
精华内容 109
关键字:

当窗口不能将所有的信息显示