问题标签 [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.
batch-file - 当从批处理运行的应用程序与标准输入混淆时,如何将标准输入提供给批处理文件?
这是一个最小的批处理文件demo.bat
,来说明我的问题:
foo.txt
我有一个看起来像这样的输入文件:
我将批处理文件作为demo.bat < foo.txt
. 输出是:
如果我删除sqlcmd -?
, 那么 bar 被“键入”为bar_value
,这是我最初所期望的。
所以,在我看来,sqlcmd
使用不适合它的标准输入以某种方式表现不佳。有人对我如何解决它有任何好主意吗?在一个完美的世界中,该解决方案不会涉及更改原始批处理文件,或涉及安装第三方包来驱动交互(例如,Expect)。
java - Java:在单独的进程中运行 Callable
给定一个实例x
,Callable<T>
如何x
在单独的进程中运行,以便可以重定向进程的标准输入和输出?例如,有没有办法Process
从 a 构建 a Callable
?是否有Executor
控制输入和输出的标准?
Callable
[更新]在新进程中执行而不是在新线程中执行并不重要。我想要的是把Callable
实例放在“线束”中,这样我就可以控制它的标准输入/标准输出。AFAIK,这需要一个新的过程。
c++ - printf("something\n") 输出 "something" (附加空间) (g++/linux/用 gedit 读取输出文件)
我有一个简单的 C++ 程序,它读取stdin
usingscanf
并将结果返回到stdout
using printf
:
我正在用 g++ 编译并在 linux 下运行。我使用文本文件作为输入执行程序,并将输出通过管道传输到另一个文本文件,如下所示:
程序 <in.txt> out.txt
问题是 out.txt 看起来像这样:
结果1_
结果2_ 结果
3_
...
其中 '_' 是每行末尾的额外空格。我正在 gedit 中查看 out.txt。
如何在没有额外空间的情况下产生输出?
我的输入文件如下所示:
2 123
123 123 123
123 234 212
编辑:我能够找到解决此问题的方法:printf("\rfoo");
感谢您的输入!
c# - SSMS 的 C# 外部工具 - 从标准输入读取
我正在尝试编写一个利用 SQL Server Management Studio 的外部工具功能的应用程序。
要指定外部工具,您可以输入应用程序的路径并指定一些参数以通过 STDIN 传递给应用程序。
目前我只有一个显示参数的表单。每次我运行外部工具时,我都会得到一个新的应用程序实例。
理想情况下,我希望第一次运行该工具来加载应用程序,然后每次运行都从 STDIN 获取参数并对其进行处理,而无需创建应用程序的新实例。
有什么我可以做的可以允许这个,还是我被很多窗户困住了?
提前致谢
bash - 在 bash 脚本中临时重定向 stderr
我有一个简单的脚本,用于启动另一个程序。这个其他程序有时可能会产生一个SIGSEGV
,这会破坏我的输出。因此,我添加了几行应该临时将 重定向stderr
到被忽略/dev/null
的行。SIGSEGV
以下是我的代码草稿:
问题是最后一行没有做我想要的。第一行显然有效,并将stderr
. 最后一行应该返回stderr
到它之前的位置(我只认为它与 相同stdout
)。
任何帮助将不胜感激!
.net - 如何将输入发送到控制台,就像用户正在打字一样?
这是我的问题。我有一个必须在 TTY 中运行的程序,cygwin 提供了这个 TTY。当我重定向 stdIn 时,程序失败,因为它没有 TTY。我不能修改这个程序,需要一些自动化的方法。
如何获取 cmd.exe 窗口并向其发送数据并使其认为用户正在键入它?
我正在使用 C#,我相信有一种方法可以使用 java.awt.Robot 来做到这一点,但出于其他原因我必须使用 C#。
java - AIR 1.5 应用程序有没有办法从标准输入读取并写入标准输出/标准错误?
一直在研究 Adobe AIR 1.5 的文件系统相关类,但是到目前为止我还没有看到任何提到如何与 stdin/stdout/stderr 交互的东西。有点令人惊讶,因为 AIR 使得与本地文件系统交互成为可能,并且有一个 FileStream 类。
我想从父进程启动 AIR 应用程序,然后通过 stdin/stdout 通过异步 i/o 与 AIR 应用程序交互。将避免需要在本地主机上使用端口并进行套接字 i/o。(是的,这是关于以Merapi风格的跨平台方式桥接 java 和 AIR 。)
c# - C# 控制台程序 - 阻止 STDIN 转到 STDOUT
我正在用 C#、.NET 2.0 编写一个简单的控制台应用程序。它使用线程计时器启动新线程,同时解释主线程上的命令。
我目前采取三个命令: P - 暂停 C - 继续 Q - 退出
此功能运行良好,但不幸的是,当我键入 P、C 或 Q(或任何其他字符)时,该字符会转到 STDOUT。有没有办法可以以编程方式阻止它?知道我是否可以禁用和重新启用 STDIN -> STDOUT 也会很有用。
提前致谢。
c++ - C/C++ 从标准输入的十六进制输入中读取一个字节
无法完全找到如何在 C/C++ 中执行以下操作的方法。
输入:十六进制值,例如:ffffffffff...
为了读取输入,我尝试了以下代码:
这一切都很好,但是我如何将 2bytes 拆分为 1bytesuint8_t
值(或者甚至可能只读取第一个字节)。想从输入中读取第一个字节,并将其存储在字节矩阵中的选择位置。
由于我在格式化/读取 C/C++ 中的输入方面不是很熟练(并且到目前为止只使用了 scanf),因此非常感谢任何其他关于如何轻松(如果可以的话,速度很快)的想法。
编辑:通过使用 fread 函数找到了一种更好的方法,因为它可以指定应该从流中读取多少字节(在这种情况下为标准输入)并保存到变量/数组中。
参数
ptr - 指向最小大小为 (size*count) 字节的内存块的指针。
size - 要读取的每个元素的大小(以字节为单位)。
count - 元素的数量,每个元素的大小为 size 字节。
stream - 指向指定输入流的 FILE 对象的指针。
perl - 如何在不使用 select 的情况下在 Perl 中检查(窥视)STDIN 以获取管道数据?
我正在尝试处理没有参数和管道数据传递给 Perl 脚本的可能性。我假设如果没有参数,那么输入将通过 STDIN 进行管道传输。但是,如果用户没有提供任何参数并且没有向脚本传递任何内容,它将尝试获取键盘输入。我的目标是提供错误消息。
不幸的是,select()
它不能移植到一些非 POSIX 系统。是否有另一种方法可以最大限度地提高便携性?