标签: stdout

将字符串发送到1行的stdout和socket的方法

我想把它写成只有一行:

fprintf(stdout, "RCPT TO: <%s>\r\n", argv[argc-1]);
fprintf(sockfd, "RCPT TO: <%s>\r\n", argv[argc-1]);
Run Code Online (Sandbox Code Playgroud)

所以我想将相同的字符串发送到stdout和我的开放套接字.我怎样才能做到这一点?

c unix linux stdout

0
推荐指数
1
解决办法
359
查看次数

如何在python中避免使用stdout空格?

在搞乱Python时,我决定制作一个随机符号生成器,它会向CL输出连续的字符流.

这很简单,看起来像这样:

from random import choice
import sys

char_ranges = [[33,48],[58,65],[91,97],[123,127]]

chars = []
for r in char_ranges:
    for i in range(r[0],r[1]):
        chars.append(chr(i))

while True:
    print choice(chars),
    sys.stdout.flush()
Run Code Online (Sandbox Code Playgroud)

唯一的问题是,,打印一个字符后使用会导致在stdout.flush()调用后添加一个空格.

我通常会解决这个问题的方法是通过连接字符串并打印它,但在这种情况下,我想要一个连续的输出流,因此连接将无济于事.

那么如何在没有空格的Python中获得连续的输出流?

python stdout

0
推荐指数
1
解决办法
136
查看次数

为什么我的纳米睡眠不起作用......?

我编写了以下代码来逐字符地打印段落,间隔为0.3秒.但是当我编译并运行它时,它会打印出句子中的所有内容.为什么纳秒功能不起作用?

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <time.h>

int main() {
    int i = 0;
    struct timespec t1, t2;
    t1.tv_sec = 0;
    t1.tv_nsec = 300000000L;

    char story[] = {"I want to print this story / letter by letter on the screen./"};
    while(story[i] != '\0') {
        if(story[i] == '/')
            sleep(1);
        else
            printf("%c", story[i]);
    nanosleep(&t1, &t2);
        i++;
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c sleep stdout stream

0
推荐指数
1
解决办法
1149
查看次数

STDOUT文件 - perl

好的,所以我读了我的文件并打印得很好,但现在我正在尝试将数据输出到一个新文件,但它无法正常工作.任何人都可以在这看到错误吗?

 #!/usr/bin/perl -w
use strict;
use warnings;
use diagnostics;

$| = 1;

open MYFILE, "+<", 'source_file.txt' or die $!;
my $linenum = 1;
while (<MYFILE>) {
    print $linenum++;
    print ": $_\n";
}

open OUT, "+>", 'output_report.txt' or die $!;
while (<OUT>) {
print "SUMMARY SECTION:\n\n";
print "# of total lines in the file - '2006'\n\n";

}
Run Code Online (Sandbox Code Playgroud)

新文件'output_report'已创建,但是当我打开新的txt文件时,这是我的不幸,空白.另外,如果我使用STDOUT,是否必须使用STDERR?谢谢!

regex perl stdout

0
推荐指数
1
解决办法
169
查看次数

bash脚本:搜索Java STDOUT以获取变量

当我运行myTest.jar时,它在STDOUT中输出大量信息(不在文件中),我试图读取/搜索该文件以获取特定字符串作为变量放入我的bash脚本中.

java标准输出:

line 1 info............ 

line 2 info........... 

.... 

...

Successful    (either 'Successful' or 'Failed')
Run Code Online (Sandbox Code Playgroud)

如何在bash中搜索stdout中的最后一行或('Successful'或'Failed')而不将stdout重定向到文件?

提前致谢

java linux bash stdout

0
推荐指数
1
解决办法
168
查看次数

无法索引到列表中

我正在编写一个程序来读取另一个程序的输出,逐行读取并将其放入列表中.

#!/usr/bin/python

import subprocess

def RECEIVE(COMMAND):
    PROCESS = subprocess.Popen(COMMAND, stdout=subprocess.PIPE)
    LINES = iter(PROCESS.stdout.readline, "")
    for LINE in LINES:
        RECARR = LINE.split()
        print RECARR[14]

RECEIVE(["receivetest","-f=/dev/pcan32"])
Run Code Online (Sandbox Code Playgroud)

receivetest程序的输出是:

19327481.401 receivetest: m s 0x0000000663 8 2f 00 42 02 00 e4 8a 8a
19327481.860 receivetest: m s 0x000000069e 8 00 1f 5e 28 34 83 59 1a
Run Code Online (Sandbox Code Playgroud)

它是一个不断的消息流.拆分时,列表的范围是14,因为在拆分后,为了确保,我使用了:

print len(RECARR)
Run Code Online (Sandbox Code Playgroud)

这给了我一个输出14.

但每当我尝试打印最后一个元素时:

print RECARR[14]
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

file "./cancheck.py", line 10, in RECEIVE
print RECARR[14]
IndexError: list index out of range
Run Code Online (Sandbox Code Playgroud)

这是由于列表顶部打印的一些错误文本引起的,所以我需要一些方法来确保程序只读取以

1234567.123
/^(.......\.\d{1,3}) …
Run Code Online (Sandbox Code Playgroud)

python indexing stdout list

0
推荐指数
1
解决办法
924
查看次数

Git - 预提交钩子错误颜色

我的预提交钩子压缩/编译css/js文件.当发生错误时,我只是echo用来输出错误然后exit 1.但是,写入控制台的文本是WHITE,因此在发生错误时不容易看到.

是否有另一种方法可以写入控制台(errOut?),使文本变为RED

git stdout stderr pre-commit-hook

0
推荐指数
1
解决办法
1860
查看次数

将stdout和stdin重定向到文件

我可以写一个文件并从中读取:

echo a > b.txt
read c < b.txt
Run Code Online (Sandbox Code Playgroud)

Bash是否能够隐含地这样做?就像是:

<turn on implicit mode>
echo a
read c
<turn off implicit mode>
Run Code Online (Sandbox Code Playgroud)

当"隐式模式"打开时,所有stdout都转到b.txt,所有stdin都b.txt读取.我试过了:

exec > b.txt
Run Code Online (Sandbox Code Playgroud)

但它只影响标准输出.

bash stdin stdout

0
推荐指数
1
解决办法
999
查看次数

Python-sys.stdout.flush()在python 2.7中的2行

我正在用python 2.7编写

我有以下代码:

a = 0
b = 0
while True:
    a += 1
    b += 1
    print str(a)
    print str(b)
Run Code Online (Sandbox Code Playgroud)

输出如下:

1
1
2
2
3
3
4
....
Run Code Online (Sandbox Code Playgroud)

并希望用这两行冲洗stdout.flush().代码看起来像这样,但它不起作用..

import sys

a = 0
b = 0
while True:
    a += 1
    b += 1
    sys.stdout.write(str(a)+"\n")
    sys.stdout.write(str(b)+"\r")
    sys.stdout.flush()
Run Code Online (Sandbox Code Playgroud)

这会产生如下输出:

1   #1
2   #1   ->#2
3          #2   ->#3
4                 #3   ->#4
...
Run Code Online (Sandbox Code Playgroud)

我知道这是因为\r只跳到第二行的开头,然后从下一个打印开始..

如何将光标设置为第1行的开头而不是第2行?

所以它只刷新2行:

n  #1 ->#2  ->#3  ->#4  ->#.....
n  #1 ->#2  ->#3 …
Run Code Online (Sandbox Code Playgroud)

python stdout flush sys python-2.7

0
推荐指数
1
解决办法
1666
查看次数

Common Lisp:flush标准输出

试图学习lisp(我猜emacs一起).我想知道如何清除输出并更换它.可以在LISP repl或emacs缓冲区中.
类似于python中的以下内容.

def go(r):
    for i in range(r):
        sys.stdout.write("\rDoing %i" % i)
        sys.stdout.flush()
Run Code Online (Sandbox Code Playgroud)

lisp stdout common-lisp

0
推荐指数
1
解决办法
954
查看次数

标签 统计

stdout ×10

python ×3

bash ×2

c ×2

linux ×2

common-lisp ×1

flush ×1

git ×1

indexing ×1

java ×1

lisp ×1

list ×1

perl ×1

pre-commit-hook ×1

python-2.7 ×1

regex ×1

sleep ×1

stderr ×1

stdin ×1

stream ×1

sys ×1

unix ×1