看不到我的c ++程序的输出(debian)

时间:2013-10-18 09:48:25

标签: c++

这可能是一个愚蠢的问题,但......

我正在用C ++编写一些东西,它在g ++上编译得很好,但是当我启动二进制文件时,即使我将输出重定向到文件中,也没有打印出来。

实施例: print.cpp

#include <iostream>
using namespace std;

/*...*/

int main ()
{
    //Table tab;
    //tab.set_all('_');
    //tab.setc(1, 1, 'c');
    //tab.setc(10, 5, 'd');
    cout << "print" << endl;
    //tab.print();
    cout << "end" << endl;
    return 0;
}

在shell中:

>g++ print.cpp -o print
>print
>print > t
>cat t
>

我的代码中存在问题,还是以错误的方式启动程序?

3 个答案:

答案 0 :(得分:4)

通过在shell中键入print,您正在执行print命令,该命令是shell的内置命令,无需任何参数即可打印任何内容。

要启动二进制文件,请键入./print。这解决了当前目录中print命令和二进制print之间的混淆。

答案 1 :(得分:3)

如果你只是打电话

> print

您实际上正在执行/usr/bin/print,该手册页是

  

NAME
        run-mailcap,view,see,edit,compose,print - 通过mailcap文件中的条目执行程序

运行你的代码你应该做以下三件事之一:

  1. 如果来自同一目录

    > ./print
    
  2. 从其他目录

    > /path/to/exe/print
    
  3. /path/to/exe/

    之前的PATH中添加exe所在的目录(/usr/bin
    > export PATH=/path/to/exe:$PATH
    > print
    

    如果您想永久添加,只需将export PATH=/path/to/exe:$PATH添加到~/.profile文件

答案 2 :(得分:1)

print是来自mailcap包的程序的名称。在shell中键入print并按下Return键将执行它(来自/usr/bin/print)。键入./print

启动您的计划