0

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

我正在用 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;
}

在外壳中:

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

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

4

3 回答 3

4

通过print在你的 shell 中输入你正在执行print命令,它是你的 shell 的一个内置命令,没有任何参数就不会打印任何内容。

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

于 2013-10-18T09:52:11.380 回答
3

如果你只是打电话

> print

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

NAME
run-mailcap,查看,查看,编辑,撰写,打印 - 通过 mailcap 文件中的条目执行程序

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

  1. 如果来自同一目录

    > ./print
    
  2. 从另一个目录

    > /path/to/exe/print
    
  3. 在前面添加exe所在的目录(/path/to/exe/PATH/usr/bin

    > export PATH=/path/to/exe:$PATH
    > print
    

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

于 2013-10-18T09:50:12.127 回答
1

print是 mailcap 包中的一个程序的名称。键入printshell 并按 Return 键将执行它(从/usr/bin/print)。通过键入来启动您的程序./print

于 2013-10-18T09:50:25.117 回答