标签: stdout

重定向到另一个应用程序时"打印"不起作用

我在重定向python应用程序的输出时遇到了这个奇怪的问题.我从源代码运行bitmessage ,它向控制台打印了相当多的东西.

我尝试使用我编写的应用程序过滤掉一些行.当我将输出重定向到文件时python.exe src\bitmessagemain.py>file.txt它工作正常,一切都发送到文本文件.当我将输出管道python.exe src\bitmessagemain.py | someapp.exe传输到另一个应用程序时,所有"print"语句似乎都被忽略了.它们不会重定向,也不会通过管道传输到其他应用程序.

使用"more"和"type CON"等系统内部命令时,重定向甚至不起作用

有人知道如何解决这个问题吗?

python windows printing redirect stdout

-1
推荐指数
1
解决办法
1140
查看次数

为什么这个C程序没有打印任何东西?

我有以下代码:

int main()
{
   printf("hello world");
   while(1);
}
Run Code Online (Sandbox Code Playgroud)

打印你好世界吗?如果是,为什么?如果不是,为什么?我在linux机器上使用gcc来编译代码.

c linux stdout flush

-1
推荐指数
1
解决办法
464
查看次数

抑制标准输出中的引号(hackerrank)

我正在Haskell 的 Hackerrank 中处理字符串压缩问题,但一直停留在 IO 上。我试图明确删除引号。

compress :: [Char] -> [Char]
compress = ...

main :: IO ()
main = do
    input <- getLine
    let result = compress input
    print $ filter (/='"') result 
Run Code Online (Sandbox Code Playgroud)

代码编译并返回正确的响应,尽管用引号括起来。

Compiler Message
Wrong Answer

Input (stdin)
abcaaabbb

Your Output (stdout)
"abca3b3"

Expected Output
abca3b3
Run Code Online (Sandbox Code Playgroud)

io haskell stdout double-quotes

-1
推荐指数
1
解决办法
63
查看次数

使用文件指针从 stdout 读取并递减它

我正在尝试分析以下代码:

FILE* out=stdout;
    
    printf("\nEnter value: \n");
    
    out=out-1;
    
    char ch;
    
    while(ch!=EOF){
        ch=fgetc(out);
        printf("\nValue printed: %c\n",ch);
    }
    
    fclose(out);
Run Code Online (Sandbox Code Playgroud)

当我运行此代码时,会观察到以下输出:

Enter value:
IWantToC

Value printed: I

Value printed: W

Value printed: a

Value printed: n

Value printed: t

Value printed: T

Value printed: o

Value printed: C

Value printed:


Run Code Online (Sandbox Code Playgroud)

我知道 fgetc 一次从 out(指向 stdout)获取一个字符的值并打印它直到到达文件末尾。

out=out-1 在这里做什么?如果 out 最初指向 stdout 文件的开头,那么它不应该也打印“Enter value:”中的字符。或者,如果它指向 stdout 文件的末尾,那么它不应该只从末尾打印一个字符吗?另外,为什么它首先需要用户输入?是因为getc吗?

抱歉问了很多问题。如果有人澄清这些疑问,这对我理解 C 将会非常有帮助。我在这里看到了相关问题,但没有找到任何特别解决我的疑问的问题。

c pointers stdout

-1
推荐指数
1
解决办法
60
查看次数

为什么python不将输出发送到stdout?

这是一个最小工作示例(MWE),保存为mwe.py:

import sys

def f(n):
    print("Testing print()...")
    sys.stdout.write("Calculating f({})...".format(n))
Run Code Online (Sandbox Code Playgroud)

从命令行运行时,我得不到任何输出:

username@hostname:~/mydir$ python mwe.py 'f(99)'
username@hostname:~/mydir$ 
Run Code Online (Sandbox Code Playgroud)

从内部运行时python 我得到输出(删除了一些信息):

username@hostname:~/mydir$ python
Python 3.5.4 (default, DATE, HH:MM:SS)
[GCC X.X.X Compatible Apple LLVM X.X.X (clang-X.X.X)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from mwe import f
>>> f(99)
Testing print()...
Calculating f(99)...
>>>
Run Code Online (Sandbox Code Playgroud)

为什么这些输出语句在命令行内python不在命令行中?

python stdout output python-3.5

-2
推荐指数
1
解决办法
130
查看次数

标签 统计

stdout ×5

c ×2

python ×2

double-quotes ×1

flush ×1

haskell ×1

io ×1

linux ×1

output ×1

pointers ×1

printing ×1

python-3.5 ×1

redirect ×1

windows ×1