前提・実現したいこと
最近Rustを勉強し始めた者です。
こちらのサイトで見よう見まねしていたところ、以下のような記述を見かけました。
https://doc.rust-jp.rs/book-ja/ch02-00-guessing-game-tutorial.html
println!("Please input."); let mut input=String::new(); io::stdin() .read_line(&mut input) .expect("Error: failed to read line.\n");
こうしたとき、実行は以下のようになると思います。
Please input. <入力>
これ自体には何の問題もないと思います。
ただ少し自分なりにアレンジを加えてみたくなり、コードを以下のように変更しました。
print!("input: "); let mut input=String::new(); io::stdin() .read_line(&mut input) .expect("Error: failed to read line.\n");
ここで予想外の問題が発生しました。
Print!()は確かにread_line()の前にあるので、アルゴリズムは「出力→入力」のようになると予想していましたが、実行は以下のようなりました。
<入力> input:
これはRustの仕様なのか、それとも自分の環境のせいなのかは自分では判断できないので、どなたかご教授頂けるとありがたいです。
該当のソースコード
rust
1use std::io; 2 3fn main(){ 4 print!("input: "); 5 let mut input=String::new(); 6 io::stdin() 7 .read_line(&mut input) 8 .expect("Error: failed to read line.\n"); 9 10 print!("your input is {}\n",input); 11}
試したこと
自分なりに調べてみたところ、こちらのサイトに辿り着きました。
https://www.webdevqa.jp.net/ja/rust/rustで末尾の改行なしで出力を印刷するにはどうすればよいですか?/826307055/
しかし_print!()_等調べてもよく分からないマクロがあり、結局疑問の解消には至りませんでした。
補足情報
開発環境
Visual Studio Code ver. 1.61
実行環境
CPU:Intel Core i5 1.10 - 1.50[GHz]
OS:Windows 10 Home ver. 21H1
メモリ:8.00[GB]
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/11/13 03:09
2021/11/13 04:49