这可能是一个愚蠢的问题,但......
我正在用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
>
我的代码中存在问题,还是以错误的方式启动程序?
答案 0 :(得分:4)
通过在shell中键入print
,您正在执行print
命令,该命令是shell的内置命令,无需任何参数即可打印任何内容。
要启动二进制文件,请键入./print
。这解决了当前目录中print
命令和二进制print
之间的混淆。
答案 1 :(得分:3)
如果你只是打电话
> print
您实际上正在执行/usr/bin/print
,该手册页是
NAME
run-mailcap,view,see,edit,compose,print - 通过mailcap文件中的条目执行程序
运行你的代码你应该做以下三件事之一:
如果来自同一目录
> ./print
从其他目录
> /path/to/exe/print
在/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