19 октября 2023 Rust stdin lines enumerate
use std::io;
fn main() -> io::Result<()> {
for (idx, line) in std::io::stdin().lines().enumerate() {
println!("Номер строки: {idx:>5} -> {}", line.unwrap() );
}
Ok(())
}
тут в цикле перебираются пронумерованные строки переданные на входящий канал
{idx:5}, указывает формированить вывод строк в блоке из 5 символов
cat src/main.rs | cargo r
Finished dev [unoptimized + debuginfo] target(s) in 0.00s
Running `target/debug/read_stdin`
Номер строки: 0 -> use std::io;
Номер строки: 1 ->
Номер строки: 2 ->
Номер строки: 3 ->
Номер строки: 4 -> fn main() -> io::Result<()> {
Номер строки: 5 ->
Номер строки: 6 -> for (idx, line) in std::io::stdin().lines().enumerate() {
Номер строки: 7 -> println!("Номер строки: {idx:>5} -> {}", line.unwrap() );
Номер строки: 8 -> }
Номер строки: 9 ->
Номер строки: 10 -> Ok(())
Номер строки: 11 -> }
Тоже самое но на python
#!/usr/bin/env python
import sys
for idx, line in enumerate(sys.stdin.readlines()):
print(f"Номер строки: {idx:>5} -> {line}", end='')