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

标签 c++ linux unix command-line pipe

Possible Duplicate:
Detect if stdin is a terminal or pipe in C/C++/Qt?

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

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

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

最佳答案

isatty(STDIN_FILENO)

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

关于c++ - 期待来自 std::cin (Unix C++) 的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5203704/

相关文章:

c++ - 高级 C++ 元编程中的代码无法编译

c++ - 如何从 C++ 中的二进制文件中读取类

python - 将输出读入 os.system 命令中的变量

linux - 如何从 Bash 中对包含公共(public)前缀和后缀的字符串进行数字排序?

c++ - 无需规则即可创建目标 .moc

C++ 匿名字符串销毁时间

linux - 进程卡在linux桌面

c - 如何循环Linux设备树节点中的多个寄存器?

linux - 关于 UNIX 移动命令覆盖保护

java - 如何防止用户删除 JVM 正在使用的文件