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

时间:2011-03-05 12:05:50

标签: c++ linux unix command-line pipe

  

可能重复:
  Detect if stdin is a terminal or pipe in C/C++/Qt?

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

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

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

2 个答案:

答案 0 :(得分:6)

isatty(STDIN_FILENO)

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

答案 1 :(得分:0)

也许你可以用fstat(2)和S_ISFIFO做什么?