gpt4 book ai didi

c - 如何中断另一个标准输入流

转载 作者:行者123 更新时间:2023-12-02 01:55:35 25 4
gpt4 key购买 nike

这个问题可能有点难以表述。例如,程序从 stdin 接收一个字符串,但它需要来自用户的交互式输入,如下所示:

echo "Some text to handle later after command is specified" | a.out 

在程序的开头:

printf("Please input command first");
scanf("%s", &cmd);
/* Some Code Here */
/* process "Some text to handle later after command is specified" */

有没有办法“暂停”之前的输入流并等待 scanf 的输入流?

最佳答案

除了从 stdin 读取之外,该标准没有指定任何获取交互式用户输入的方法。由于您的标准输入被管道占用,因此您需要遵循特定于实现的路径。

对于类 Unix 系统,这将是一个名为 /dev/tty 的特殊文件。 fopen 它并使用正常的 stdio 函数。

在 Windows 上,您可能需要调用 Console API。

我们无法保证程序会附加到任何交互式设备上,因此请做好失败的准备。

请注意,以这种方式编写程序被认为是不好的风格。如果需要任何用户输入,那么一个聪明的程序应该只使用 stdin。然后,所有其他输入流都应通过命令行参数作为文件名传递。

关于c - 如何中断另一个标准输入流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20259493/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com