问题标签 [stdin]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
perl - 如何在 Perl 中测试 STDIN 而不会阻塞?
我正在编写我的第一个 Perl 应用程序——一个与 Arduino 微控制器对话的 AOL Instant Messenger 机器人,后者反过来控制一个伺服系统,该伺服系统将按下我们系统管理员服务器上的电源按钮,该服务器每 28 小时左右随机冻结一次。
我已经完成了所有困难的事情,我只是想添加最后一点代码来打破主循环并在用户键入“退出”时退出 AIM。
问题是,如果我尝试在主程序循环中从 STDIN 读取数据,它会阻止进程直到输入输入,从而使机器人处于非活动状态。我在阅读之前尝试过测试 EOF,但没有骰子...... EOF 总是返回 false。
下面是我正在使用的一些示例代码:
python - 如何将字符串传递给 subprocess.Popen(使用 stdin 参数)?
如果我执行以下操作:
我得到:
显然,cStringIO.StringIO 对象与文件鸭的距离不够近,无法适应 subprocess.Popen。我该如何解决这个问题?
java - Eclipse 从文件中读取标准输入(System.in)
Eclipse 是否可以从文件中读取标准输入?
stdin - 替换文件的标准输入
我有一个这样的 fscanf 程序:
fscanf(stdin, "%d %d,....
我有很多 fscanf 和我想测试的文件,文件是这样的
10485770 15 51200000 -2 10 10 10485760 10485760 10 10485760 10485760 10 10485760 10485760
好吧,我的问题是如何告诉程序或编译器不要从键盘而是从那些文件中获取输入。这些程序是基准,在我得到输入的文件中,我确信有一种方法可以自动执行此操作,因为在某些情况下有很多输入。先感谢您。
bash - 如何将多行输入从标准输入读入变量以及如何在 shell(sh,bash)中打印出来?
我想要做的是以下内容:
stdin
从变量中读取多行输入A
- 进行各种操作
A
- 管道
A
不丢失分隔符(,,,\n
等\r
)\t
到另一个命令
当前的问题是,我无法使用read
命令读取它,因为它在换行符处停止读取。
我可以用 读取标准输入cat
,如下所示:
,但后来我不知道如何打印它。这样换行符、制表符和其他分隔符仍然存在。
我的示例脚本如下所示:
shell - 将标准输入和标准输出重定向到文件
我目前是 C类入门的助教。这门课是使用 Visual Studio 教授的,但是在评分时,我只使用一个简单的 Windows 批处理脚本来处理所有提交的作业、编译它们、在测试文件上运行它们,并将输出重定向到我可以打印的一系列文本文件出来,做标记,然后交还给学生。整个过程运行得很好,除了当我重定向标准输入时,它不会像直接在控制台中输入相同的标准输入时那样出现在重定向的标准输出中。因此,为控制台格式化的代码输出不会在重定向输出中正确显示。以下文件片段显示了此问题。有谁知道一个简单的解决方案?
文件:example.c
文件:输入.txt
输出(控制台)
输出(重定向)
unix - 从标准输入中删除第一行并重定向到标准输出
我需要将除第一行之外的程序的所有标准输出重定向到文件中。
是否有一个通用的 unix 程序可以从标准输入中删除行并将其余的输出到标准输出?
ruby - Ruby 中 STDIN 的最佳实践?
我想处理 Ruby 中的命令行输入:
最好的方法是什么?特别是我想处理空白的标准输入,我希望有一个优雅的解决方案。
c - 如何从 C 中的控制台读取一行?
在 C 控制台程序中读取整行的最简单方法是什么输入的文本可能具有可变长度,我们不能对其内容做出任何假设。
c++ - stdin/stdout/stderr 上的跨平台 (linux/Win32) 非阻塞 C++ IO
我正在尝试通过具有以下特征的标准输入/标准输出找到非阻塞 IO 的最佳解决方案:
- 只要有足够的数据,就读入n 个大小的块。
- 如果没有足够的数据,则读入部分块。
- 如果没有可用数据,则阻塞直到有一些数据(即使它可能小于n)。
目标是在立即处理“控制”代码的同时允许有效传输大型数据集(而不是让它们停留在某个部分填充的缓冲区中)。
我知道我可以通过使用线程和 istream::get() 循环来实现这一点,或者通过编写一堆特定于平台的代码(因为你不能 select() 在 Windows 中的文件句柄上)......((那里也是 istream::readsome() ,这似乎很有希望,但我在谷歌上能找到的唯一结果是人们说它实际上效果不佳。))
由于我没有对这些 API 进行太多编码,也许有更好的方法。