期待来自std :: cin的输入(Unix C++)

zyn*_*dor 2 c++ unix linux command-line pipe

可能重复:
检测stdin是C/C++/Qt中的终端还是管道?

我正在编写一个命令行应用程序,它将数据作为命令行参数或来自cin.

有没有办法检查用户是否在应用程序中传输了一些数据($ ./myapp <test.txt),如果没有,只显示键盘输入的提示?

如果我正在检查!cin.good()/ cin.eof()等,则提示将永远不会出现.

Fre*_*Foo 6

isatty(STDIN_FILENO)
Run Code Online (Sandbox Code Playgroud)

将返回标准输入是否是终端(tty),即交互式.