【问题标题】:Expecting input from std::cin (Unix C++) [duplicate]期望来自 std::cin (Unix C++)的输入 [重复]
【发布时间】:2011-07-09 09:21:38
【问题描述】:

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

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

有没有办法检查用户是否在应用程序中传输了一些数据($ ./myapp

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

【问题讨论】:

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


【解决方案1】:
isatty(STDIN_FILENO)

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2021-08-17
      • 1970-01-01
      • 2015-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-18
      • 1970-01-01
      • 2021-02-26
      相关资源
      最近更新 更多