Rust print訊息不換行的方法

2021-09-28 13:37:26 字數 1055 閱讀 4419

rust語言用println!巨集列印一行資訊,用print!巨集列印資訊,行尾不加換行符。

但是用print!巨集列印資訊後,並不會立即顯示。

比如,下面**行為可能會令人比較費解。它會先等待使用者輸入,然後再列印訊息。

use std::io;

fn main() ", s);

}

實際執行結果是這樣的:

> main

> 123

> please input:you input is :123

>

為什麼會這樣呢?查詢了很久後才發現,rust標準輸出是行緩衝的,只有到行尾才顯示,如果想不到行尾直接顯示怎麼辦?答案是手動重新整理,方法如下:

use std::io;

use std::io::write;

fn main() ", s);

}

ok,這次執行正常了,執行結果是這樣的:

> main

> please input:123

> you input is :123

>

**中我們增加了一行io::stdout().flush();強制重新整理,呼叫flush,必須引用write,否則會出錯,原因是flush函式是在write trait中實現的。所以必須增加use std::io::write;

flush和read_line函式都是有返回值的,並且返回值都是result型別的,不處理編譯器總是顯示一堆警告,我們修改一下**處理一下:

use std::io;

use std::io::write;

fn main()

let mut s = string::new();

if io::stdin().read_line(&mut s).is_err()

println!("you input is :{}", s);

}

ok,再試試吧

CSS換行不換行

段落文字不超出幾行,超出部分以省略號顯示 一 div內顯示一行,超出部分用省略號顯示 white space nowrap overflow hidden text overflow ellipsis 二 div內顯示兩行或三行,超出部分用省略號顯示 overflow hidden text ove...

CSS換行不換行

段落文字不超出幾行,超出部分以省略號顯示 一 div內顯示一行,超出部分用省略號顯示 white space nowrap overflow hidden text overflow ellipsis 二 div內顯示兩行或三行,超出部分用省略號顯示 overflow hidden text ove...

換行還是不換

最近在實現乙個webcontrol的showhistory功能的時候,遇到了下面的問題 如果連續輸入日文很長的字串,那麼historylist的item將被撐得很大,不便於查詢其他item。在這裡,我們不希望實現自動換行。由於每乙個item是乙個div。對於ie瀏覽器,找到了如下屬性,whitesp...