问题标签 [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.
python - 如何遍历命令行上传递的所有文件行?
我通常在 Perl 中这样做:
随便什么.pl
然后cat foo.txt | whatever.pl
现在,我想在 Python 中做到这一点。我试过sys.stdin
了,但我不知道该怎么做,就像我在 Perl 中所做的那样。如何读取输入?
c - 比 fgets 更快地读取一行输入?
我正在编写一个程序,其中性能非常重要,但并不重要。目前我正在FILE*
逐行阅读文本,并fgets
用于获取每一行。在使用了一些性能工具之后,我发现我的应用程序有 20% 到 30% 的时间在运行,它在fgets
.
有没有更快的方法来获取一行文本?我的应用程序是单线程的,无意使用多个线程。输入可以来自标准输入或文件。提前致谢。
unix - 为什么我使用 read 命令没有达到我的预期?
当我使用 vezult [1] 建议的命令时,我对我的计算机造成了一些破坏。我希望单线器要求删除文件名。但是,它立即删除了我在文件夹中的文件:
我希望它等待我输入 stdin:s [2]。我无法理解它的动作。读取命令是如何工作的,你在哪里使用它?
c++ - gdb 不接受 Emacs 中的标准输入重定向
我正在尝试在 emacs 中使用 gdb 模式调试程序。它是用 g++ 编译的,我使用的是 cygwin。我的程序接受一个命令行参数,并且还接受来自我从文件重定向的标准输入的输入,如下所示:
问题是,gdb 正在发送字符串
作为命令行参数而不是重定向标准输入。如何强制 gdb 重定向标准输入?
编辑:
在 gdb 中,我使用以下命令:
当我在 emacs 之外使用 gdb 时,它也不起作用。
编辑#2:
dfa 指出了一个类似的问题:How to load program reading stdin and take parameters in gdb?
不幸的是,该问题的公认答案对我不起作用……这可能是与 cygwin 相关的错误吗?
python - Python 等价于 Perl 的 while (<>) {...}?
我编写了许多逐行处理文件的小脚本。在 Perl 中,我使用
这很方便,因为它不关心输入来自哪里(文件或标准输入)。
在 Python 中我使用这个
这似乎不是很优雅。是否有可以轻松处理文件/标准输入的 Python 习语?
python - Python cgi 和标准输入
我正在使用 pycurl 通过 put 和 python cgi 脚本上传文件以在服务器端接收文件。本质上,服务器端的代码是:
这似乎适用于文本,但不适用于二进制文件(我在 Windows 上)。对于二进制文件,执行 stdin.read 的循环在接收到大约 10kb 到 100kb 的任何内容后会中断。有任何想法吗?
c - 查看输入缓冲区,并刷新 C 中的额外字符
如果我想在 C 中接收一个字符输入,我将如何检查是否发送了额外的字符,如果是,我将如何清除它?
有没有类似 getc(stdin) 的函数,但它不会提示用户输入字符,所以我可以输入while(getc(stdin)!=EOF);
?或者一个函数来查看缓冲区中的下一个字符,如果它不返回 NULL(或任何会存在的),我可以调用一个(另一个)函数来刷新标准输入?
编辑
所以现在, scanf 似乎在做这个伎俩,但有没有办法让它读取整个字符串,直到换行符?而不是到最近的空白?我知道我可以将“%s %s %s”或其他任何内容放入格式字符串中,但我可以处理任意数量的空格吗?
c++ - 在 Windows 中,如何拥有作为重定向管道的非阻塞标准输入?
我有一个 Windows C 程序,它通过重定向stdin
管道获取数据,有点像这样:
问题是我需要能够以stdin
非阻塞方式读取。这样做的原因是(1)输入是一个数据流并且没有EOF
,(2)程序需要能够随时中止它的stdin
读取线程。 fread
没有数据时会阻塞,所以这很困难。
fcntl
在 Unix 中这没有问题,因为您可以使用和设置文件描述符的阻塞模式O_NONBLOCK
。但是,fcntl
在 Windows 上不存在。
我尝试使用SetNamedPipeHandleState
:
但这会因ERROR_ACCESS_DENIED
( 0x5
) 而失败。
我不确定还能做什么。这实际上是不可能的(!)还是只是高度模糊?对于这个特定问题,网络上的资源相当稀少。
c - 如何忽略从标准输入读取的 C 中的箭头键?
我正在使用 read() 系统调用从标准输入中读取数据,但是有一件小事困扰着我。我不能使用箭头键...我真正想做的是使用箭头键在键入的文本中来回移动,但我认为这并不容易...所以,我至少想做的,就是忽略它们。
现在,按下任何箭头键都会产生奇怪的输出,我想阻止任何东西被写入标准输出(随后在我的 read() 系统调用中从标准输入读取)。
这很容易实现还是没那么容易?
c# - 标准输入和标准输出上的 C# 双向 IPC
如何连接两个 C# 进程,以便它们可以通过标准输入和标准输出相互通信?
像这样:
进程 A --> 标准输出 A --> 标准输入 B ---> 进程 B
进程 A <-- 标准输入 A <-- 标准输出 B <--- 进程 B