0x01 输出(print!)
fn main() {
println!("hello world");
println!("Today is {} year {} month {} day",2021,6,22);
println!("{0} + {1} + {0} is {2}",0,1,1);
println!("My name is {name}, {age} old",name = "youlangta",age = 33 );
}
0x01 其他输出(print!)
fn main() {
let a = 31;
let b = [1, 3, 5, 7, 9];
println!("二进制 {:b}", a);
println!("八进制 {:o}", a);
println!("十六进制(小写) {:x}", a);
println!("十六进制(大写) {:X}", a);
println!("科学计数(小写) {:e}", 100000_f32);
println!("科学计数(大写) {:E}", 100000_f32);
println!("打印Debug {:?}", b);
println!("输出标点 {:+}", 5);
println!("前置符二进制 {:#b}", a);
println!("前置符八进制 {:#o}", a);
println!("前置符十六进制(小写) {:#x}", a);
println!("前置符十六进制(大写) {:#X}", a);
println!("带换行和缩进的Debug打印 {:#?}", b);
println!("使用大于号右对齐 {:>6}{:>6}{:>6}", 1, 2, 3);
println!("使用小于号左对齐 {:<6}{:<6}{:<6}", 1, 2, 3);
println!("省略大于号右对齐 {:6}{:6}{:6}", 1, 2, 3);
println!("居中对齐 {:^6}{:^6}{:^6}", 1, 2, 3);
println!("填充任意字符居中对齐 {:-^6}{:*^6}{:1^6}", 1, 2, 3);
println!("{:1$}", "a", 6);
println!("{1:0$}", 6, "a");
println!("{:width$}", "a", width = 6);
println!("二进制8位补零 {:08b}", a);
println!("八进制8位补零 {:08o}", a);
println!("十六进制16位补零 {:016b}", a);
println!("小数保留3位数 {:.3} ", 0.01);
println!("取位置1的值,小数位精度取位置0的值 {1:.0$} ", 3, 0.01);
println!("{}连续获取两个值,第二个值为第一个值的精度(保留3位数){:.*} 连续获取两个值,第二个值为第一个值的精度(保留4位数) {:.*} ", 0.01, 3, 0.01, 4, 0.10);
- 输出时可以在通配符
{}中添加要输出值的位置(从0开始),来代指当前要输出哪个位置的值。常用符号如下表所示:
| 格式 | 说明 |
|---|
| {:b} | 输出结果转为二进制 |
| {:o} | 输出结果转为八进制 |
| {:x} | 输出结果转为十六进制(小写) |
| {:X} | 输出结果转为十六进制(大写) |
| {:e} | 科学计数(小写) |
| {:E} | 科学计数(大写) |
| {:p} | 输出指针 |
| {:?} | 打印Debug |
| {:+} | 数值类型如果是整数,则前置打印+号 |
| 格式 | 说明 |
|---|
| {:6}或者{:>6} | 输出结果右对齐,6的值是usize类型 |
| {:<6} | 输出结果左对齐,6的值是usize类型 |
| {:^6} | 输出结果居中,6的值是usize类型 |
| {:任意字符^6} | 输出结果居中,其余位置填充任意字符,6的值是usize类型 |
| {:任意字符>6} | 输出结果右对齐,其余位置填充任意字符,6的值是usize类型 |
| {:任意字符<6} | 输出结果左对齐,其余位置填充任意字符,6的值是usize类型 |
| 格式 | 说明 |
|---|
| {:1$} | 宽度取下标为1的值(该值是usize类型) |
| {1:0$} | 宽度取下标为1的值(该值是usize类型),值取下表0的值 |
| {:width$} | 变量取参数名称为width的值 (该值是usize类型) |
| 格式 | 说明 |
|---|
| {:08b} | 输出8位二进制,不足8位使用0填充 |
| {:08o} | 输出8位八进制,不足8位使用0填充 |
| {:016x} | 输出8位十六进制,不足16位使用0填充 |
| 格式 | 说明 |
|---|
| {:.3} | 小数点后精确度保留3位(不足补零,多余截断) |
| {1:.0$} | 位置为1的值,精确度是位置为0的值(不足补零,多余截断) |
| {:.*} | 接下来连续的两个值,第二个值的精确度是第一个值(不足补零,多余截断) |
0x02 输入 (Stdin)
fn main() {
let mut input = String::new();
std::io::stdin()
.read_line(&mut input)
.expect("read_line error!");
println!("你输入的内容是:{}",input);
}