Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >我如何打印STDOUT和获得STDIN在同一行铁锈?

我如何打印STDOUT和获得STDIN在同一行铁锈?
EN

Stack Overflow用户
提问于 2019-01-18 16:14:21
回答 2查看 7.5K关注 0票数 8

println!()print!()允许您分别打印带尾换行符和不带尾换行符的字符串和变量。此外,stdin()函数提供了从STDIN (stdin().read_line(&mut string))读取一行用户输入的函数。

应该可以安全地假设,如果连续使用print宏和read_line函数,则应该能够在同一行上写入输出并获取输入。然而,当这种情况发生时,段将以相反的顺序执行(先读取STDIN,然后打印语句)。

下面是我正在努力完成的一个例子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
use std::io;

fn main() {
    let mut input = String::new();
    print!("Enter a string >> ");
    io::stdin().read_line(&mut input).expect("Error reading from STDIN");
}

所需的输出将是(STDIN表示用户被要求输入的点,但实际上没有打印):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Enter a string >> STDIN

实际产出如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
STDIN
Enter a string >> 

另一方面,println宏不会逆转顺序,尽管仍然存在尾随换行符的问题:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Enter a string >> 
STDIN

在Python (3.x)中,这可以用一行来实现,因为input函数允许在STDIN提示符之前有一个字符串参数:variable = input("Output string")

在没有在Rust文档中找到一个允许类似于Python示例的解决方案后,我将任务分成了print宏和read_line函数。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-01-18 16:32:53

stdout在新的线路上脸红了。由于您的print!语句既不包含也不以换行符结尾,所以它不会被刷新。您需要使用std::io::stdout().flush()手动执行此操作。

例如

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
use std::io::{self, Write};

fn main() {
    let mut input = String::new();
    print!("Enter a string >> ");
    let _ = io::stdout().flush();
    io::stdin().read_line(&mut input).expect("Error reading from STDIN");
}
票数 20
EN

Stack Overflow用户

发布于 2019-01-18 20:45:02

您应该能够编写输出并获得同一行的输入。

stdinstdout中没有“同一行”的概念。有不同的流,如果您想要执行终端操作,您应该使用一些处理终端的东西,比如控制台

在Python (3.x)中,这可以用一行来实现,因为输入函数允许在STDIN提示符之前有一个字符串参数:variable = input("Output string")

好吧,给你:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
use dialoguer::Input;

let name = Input::new().with_prompt("Your name").interact()?;
println!("Name: {}", name);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54262976

复制
相关文章
stdin and stdout which it's ?
最近写了几个C函数,来处理项目中一个Desktop跨应用的进程通信,被32-bit,LE(BE)折磨了很久,stdin and stdout 看起来是一个很简单的标准输入输出,但是处理的过程中,却遇到了很大的障碍,因为历史问题,一个bytes的长度,需要将消息的位置移动4个byte存储消息的长度,先发送给对方,告诉对方我即将发送一个多少长度的byte,反之解析也是亦然。
icepy
2019/06/24
9890
stdin and stdout which it's ?
Python print() 函数,在同一行打印
print() 函数是 Python 中的一个重要函数,因为它用于将 Python 输出重定向到终端或者重定向到文件。
润森
2022/09/22
2.6K0
Python print() 函数,在同一行打印
How to Use the Stdin, Stderr, and Stdout Streams in Bash
How to Use the Stdin, Stderr, and Stdout Streams in Bash – Linux Consultant
阿东
2023/03/16
2.8K0
How to Use the Stdin, Stderr, and Stdout Streams in Bash
Python中标准输入(stdin)、标准输出(stdout)、标准错误(stdout)的用法
Python 3.x 中 input() 函数可以实现提示输入,python 2.x 中要使用 raw_input(),例如:
Python学习者
2023/08/01
4310
在同一行布局的技巧 原
例如上面的布局,我们可以使用里面元素浮动,外面的div高度为0的特点来布局,使2个div重叠在一起
tianyawhl
2019/04/04
5320
在同一行布局的技巧
                                                                            原
python try语句如何打印错误行(
打印当前.py文件错误行: import sys try: a = [1,2] print a[3] except: s=sys.exc_info() print "Error '%s' happened on line %d" % (s[1],s[2].tb_lineno) 打印execfile的打印错误行: try: execfile("tprint.py") except Exception, info: #print info[1] print "Error '%s' happe
py3study
2020/01/10
1.6K0
Shell脚本攻略04-玩转文件描述符及重定向
在编写脚本的时候会频繁使用标准输入(stdin)、标准输出(stdout)和标准错误(stderr)。
小小工匠
2021/08/16
8810
C语言缓冲区之 gets(str);fflush(stdin); rewind(stdin);setbuf(stdin, NULL);
清空键盘缓冲区很多种方法,如用fflush(stdin); rewind(stdin);setbuf(stdin, NULL);前两者仅对windows有用,最后一个则对Linux系统也适用。那么为什么需要清空键盘缓冲区呢? 以下几个实例:
瑞新
2020/07/07
2.8K0
在 Bash 中如何将标准错误stderr转向标准输出stdout
在 Bash 和其他 Linux shells 中,当程序执行时,它使用三个标准的 I/O 流。每一个流由一个数字文件描述符表示:
雪梦科技
2020/06/07
1.8K0
22. Python 模块2
日志是我们排查问题的关键利器,写好日志记录,当我们发生问题时,可以快速定位代码范围进行修改。
py3study
2020/01/15
5710
在条码打印软件中如何打印黑底白字标签
在条码打印软件中绘制普通文本添加文字的的时候,一般都是白底黑字的。但是有的时候,个别客户想要实现黑底白字的效果,这个在条码打印软件中该如何设置呢?接下来我们一起来看下在条码打印软件中将文字设置成黑底白字的操作步骤:
用户5746110
2019/09/10
2.3K0
Python重定向标准输入、标准输出和标
UNIX用户已经对标准输入、标准输出和标准错误的概念熟悉了。这一节是为其它不熟悉的人准备的。
py3study
2020/01/09
4K0
在条码打印软件中如何打印黑底白字标签
在条码打印软件中绘制普通文本添加文字的的时候,一般都是白底黑字的。但是有的时候,个别客户想要实现黑底白字的效果,这个在条码打印软件中该如何设置呢?接下来我们一起来看下在条码打印软件中将文字设置成黑底白字的操作步骤:
用户5746110
2019/09/18
2.2K0
C++:cstdio 头文件详解
输入和输出操作也可以在C++实现,通过使用C标准输入和输出库(cstdio,在C语言中称为stdio.h)。
全栈程序员站长
2022/11/01
2.2K0
python sys.stdout
下面介绍几个我们经常不经意就会用到的sys包的命令 stdout/stderr/stdin
kirin
2020/10/27
9750
我在雅虎获得的 8 个最好的职业建议
我在雅虎获得的 8 个最好的职业建议 最近,我和我的同事有一个有趣的讨论。我们回顾了各自的工作历史,以及我们“丰富多彩”的个性是否对我们长远发展造成了负面影响。事实是,我刚出大学校门的时候,比较混。我傲慢又尖刻,有着一般人不会喜欢的性格。我自以为无所不知,我骄傲得简直已经目中无人了。 我有一个习惯就是告诉经验更丰富的工程师他们做错了事情,尽管大多数时间我说的才是对的,但是我的人格魅力还不能让他们听我的。在又一次我说他们做错了的时候,其中一个高级工程师停下来说,“如果你再不闭嘴,我会把你揍得屁滚尿流。”我一笑
用户1289394
2018/02/27
7050
我在雅虎获得的 8 个最好的职业建议
Python subprocess与命令行交互
Python subprocess 模块是一个功能强大的库,用于启动和与子流程交互。 它附带了一些高级 api,比如调用、检查输出和运行,这些都集中在的程序运行和等待完成的子进程上。
叉叉敌
2020/06/10
7.7K0
Python subprocess与命令行交互
铁锈压缩图片法
为啥要选择铁锈呢,因为我那个时候电脑上也没有其他的图片,就找到一张铁锈的图片,所以就有了开头的铁锈测试法。
江涛学编程
2023/05/27
1230
铁锈压缩图片法
php://output和php://stdout的区别
PHP包含了以php://开头的一系列输出输出流,如php://stdin, php://stdout等。今天查看代码时,忽然想到一个问题:php://output和php://stdout有什么区别?
猿哥
2019/11/11
1.7K0
综合使用tail、forward、copy和stdout
我们已经介绍了几个Fluentd的输入插件和输出插件,现在先通过一个例子进行阶段总结。
Fluentd中文网
2020/06/10
1.2K0

相似问题

阅读和打印"STDIN和STDOUT“

11

Stdin和Stdout

23

如何测试stdin和stdout?

17

`stdin`和`stdout`句柄

11

stdout/stdin和参数

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文