问题标签 [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.

0 投票
5 回答
17483 浏览

python - 如何遍历命令行上传递的所有文件行?

我通常在 Perl 中这样做:

随便什么.pl

然后cat foo.txt | whatever.pl

现在,我想在 Python 中做到这一点。我试过sys.stdin了,但我不知道该怎么做,就像我在 Perl 中所做的那样。如何读取输入?

0 投票
7 回答
12469 浏览

c - 比 fgets 更快地读取一行输入?

我正在编写一个程序,其中性能非常重要,但并不重要。目前我正在FILE*逐行阅读文本,并fgets用于获取每一行。在使用了一些性能工具之后,我发现我的应用程序有 20% 到 30% 的时间在运行,它在fgets.

有没有更快的方法来获取一行文本?我的应用程序是单线程的,无意使用多个线程。输入可以来自标准输入或文件。提前致谢。

0 投票
2 回答
418 浏览

unix - 为什么我使用 read 命令没有达到我的预期?

当我使用 vezult [1] 建议的命令时,我对我的计算机造成了一些破坏。我希望单线器要求删除文件名。但是,它立即删除了我在文件夹中的文件:

我希望它等待我输入 stdin:s [2]。我无法理解它的动作。读取命令是如何工作的,你在哪里使用它?

0 投票
2 回答
1743 浏览

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 相关的错误吗?

0 投票
3 回答
5147 浏览

python - Python 等价于 Perl 的 while (<>) {...}?

我编写了许多逐行处理文件的小脚本。在 Perl 中,我使用

这很方便,因为它不关心输入来自哪里(文件或标准输入)。

在 Python 中我使用这个

这似乎不是很优雅。是否有可以轻松处理文件/标准输入的 Python 习语?

0 投票
2 回答
2063 浏览

python - Python cgi 和标准输入

我正在使用 pycurl 通过 put 和 python cgi 脚本上传文件以在服务器端接收文件。本质上,服务器端的代码是:

这似乎适用于文本,但不适用于二进制文件(我在 Windows 上)。对于二进制文件,执行 stdin.read 的循环在接收到大约 10kb 到 100kb 的任何内容后会中断。有任何想法吗?

0 投票
6 回答
9318 浏览

c - 查看输入缓冲区,并刷新 C 中的额外字符

如果我想在 C 中接收一个字符输入,我将如何检查是否发送了额外的字符,如果是,我将如何清除它?

有没有类似 getc(stdin) 的函数,但它不会提示用户输入字符,所以我可以输入while(getc(stdin)!=EOF);?或者一个函数来查看缓冲区中的下一个字符,如果它不返回 NULL(或任何会存在的),我可以调用一个(另一个)函数来刷新标准输入?

编辑

所以现在, scanf 似乎在做这个伎俩,但有没有办法让它读取整个字符串,直到换行符?而不是到最近的空白?我知道我可以将“%s %s %s”或其他任何内容放入格式字符串中,但我可以处理任意数量的空格吗?

0 投票
2 回答
4458 浏览

c++ - 在 Windows 中,如何拥有作为重定向管道的非阻塞标准输入?

我有一个 Windows C 程序,它通过重定向stdin管道获取数据,有点像这样:

问题是我需要能够以stdin非阻塞方式读取。这样做的原因是(1)输入是一个数据流并且没有EOF,(2)程序需要能够随时中止它的stdin读取线程。 fread没有数据时会阻塞,所以这很困难。

fcntl在 Unix 中这没有问题,因为您可以使用和设置文件描述符的阻塞模式O_NONBLOCK。但是,fcntl在 Windows 上不存在。

我尝试使用SetNamedPipeHandleState

但这会因ERROR_ACCESS_DENIED( 0x5) 而失败。

我不确定还能做什么。这实际上是不可能的(!)还是只是高度模糊?对于这个特定问题,网络上的资源相当稀少。

0 投票
2 回答
2135 浏览

c - 如何忽略从标准输入读取的 C 中的箭头键?

我正在使用 read() 系统调用从标准输入中读取数据,但是有一件小事困扰着我。我不能使用箭头键...我真正想做的是使用箭头键在键入的文本中来回移动,但我认为这并不容易...所以,我至少想做的,就是忽略它们。

现在,按下任何箭头键都会产生奇怪的输出,我想阻止任何东西被写入标准输出(随后在我的 read() 系统调用中从标准输入读取)。

这很容易实现还是没那么容易?

0 投票
1 回答
3122 浏览

c# - 标准输入和标准输出上的 C# 双向 IPC

如何连接两个 C# 进程,以便它们可以通过标准输入和标准输出相互通信?

像这样:

进程 A --> 标准输出 A --> 标准输入 B ---> 进程 B

进程 A <-- 标准输入 A <-- 标准输出 B <--- 进程 B