Bird
Raised Fist0
Rustprogramming~5 mins

Formatting output in Rust

Choose your learning style10 modes available
Introduction

Formatting output helps you show information clearly and nicely on the screen. It makes numbers, text, and other data easier to read.

When you want to show a number with a fixed number of decimal places.
When you want to add spaces or align text in columns.
When you want to include variables inside a message.
When you want to display data in a specific style, like hexadecimal or binary.
Syntax
Rust
println!("format string", values...);

// Example:
println!("Hello, {}!", name);

The {} inside the string is a placeholder for values.

You can add formatting inside the braces, like {:.2} to show 2 decimal places.

Examples
Prints a greeting with the name inserted.
Rust
let name = "Alice";
println!("Hello, {}!", name);
Shows the number pi rounded to 2 decimal places.
Rust
let pi = 3.14159;
println!("Pi rounded: {:.2}", pi);
Prints the number in hexadecimal format with 0x prefix.
Rust
let number = 255;
println!("Number in hex: {:#x}", number);
Prints the word 'Rust' right-aligned in a 10-character wide space.
Rust
println!("{:>10}", "Rust");
Sample Program

This program shows how to format different types of output: inserting a name, rounding a number, showing a hex value, and aligning text.

Rust
fn main() {
    let name = "Bob";
    let score = 93.4567;
    let hex_value = 48879;

    println!("Player: {}", name);
    println!("Score: {:.1}", score);
    println!("Hex value: {:#x}", hex_value);
    println!("{:>8}", "End");
}
OutputSuccess
Important Notes

You can use {{ and }} to print curly braces literally.

Formatting works with many types like numbers, strings, and more.

Summary

Use {} as placeholders to insert values in strings.

You can control number of decimals, alignment, and number base.

Formatting makes output easier to read and understand.

Practice

(1/5)
1. What does the placeholder {} do in Rust's println! macro?
easy
A. It comments out the line in the code.
B. It inserts the value of a variable or expression into the string.
C. It creates a new variable inside the string.
D. It repeats the string multiple times.

Solution

  1. Step 1: Understand the role of {} in formatting

    The {} acts as a placeholder where Rust inserts the value of a variable or expression inside a string.
  2. Step 2: Recognize its use in println!

    When using println!("Hello, {}", name);, Rust replaces {} with the value of name.
  3. Final Answer:

    It inserts the value of a variable or expression into the string. -> Option B
  4. Quick Check:

    Placeholder {} = Insert value [OK]
Hint: Remember: {} means insert value here [OK]
Common Mistakes:
  • Thinking {} creates variables
  • Assuming {} repeats strings
  • Confusing {} with comments
2. Which of the following is the correct syntax to format a floating-point number with 2 decimal places in Rust?
easy
A. println!("{:.2}", 3.14159);
B. println!("{2f}", 3.14159);
C. println!("{.2f}", 3.14159);
D. println!("{2}", 3.14159);

Solution

  1. Step 1: Identify correct decimal formatting syntax

    Rust uses {:.2} inside println! to format a float with 2 decimal places.
  2. Step 2: Check each option

    println!("{:.2}", 3.14159); uses {:.2}, which is correct. Others use invalid or incorrect syntax.
  3. Final Answer:

    println!("{:.2}", 3.14159); -> Option A
  4. Quick Check:

    Decimal places = {:.2} [OK]
Hint: Use {:.N} to set N decimal places [OK]
Common Mistakes:
  • Using {2f} or {.2f} which is invalid in Rust
  • Omitting the colon before precision
  • Confusing with other language formats
3. What is the output of this Rust code?
let x = 255;
println!("Decimal: {}, Hex: {:x}, Binary: {:b}", x, x, x);
medium
A. Decimal: 255, Hex: FF, Binary: 11111111
B. Decimal: 255, Hex: ff, Binary: 1111111
C. Decimal: 255, Hex: 0xff, Binary: 11111111
D. Decimal: 255, Hex: ff, Binary: 11111111

Solution

  1. Step 1: Understand formatting specifiers

    {} prints decimal, {:x} prints lowercase hex, {:b} prints binary.
  2. Step 2: Convert 255 to hex and binary

    255 decimal is ff in hex (lowercase) and 11111111 in binary.
  3. Final Answer:

    Decimal: 255, Hex: ff, Binary: 11111111 -> Option D
  4. Quick Check:

    Hex lowercase = {:x}, Binary = {:b} [OK]
Hint: Use {:x} for hex lowercase, {:b} for binary [OK]
Common Mistakes:
  • Expecting uppercase hex without :X
  • Adding 0x prefix automatically
  • Miscounting binary digits
4. Identify the error in this Rust code snippet:
let num = 42;
println!("Number: {2}", num);
medium
A. The println! macro requires a semicolon inside the string.
B. The variable num is not declared correctly.
C. The placeholder {2} refers to an argument index that does not exist.
D. Rust does not support numbered placeholders.

Solution

  1. Step 1: Check placeholder indexing

    The placeholder {2} means use the third argument (index 2), but only one argument num is provided.
  2. Step 2: Understand argument count mismatch

    Since only one argument exists, index 2 is out of range, causing a runtime error.
  3. Final Answer:

    The placeholder {2} refers to an argument index that does not exist. -> Option C
  4. Quick Check:

    Placeholder index must match argument count [OK]
Hint: Count arguments before using numbered placeholders [OK]
Common Mistakes:
  • Using wrong index in placeholders
  • Assuming Rust auto-corrects missing arguments
  • Thinking semicolon needed inside string
5. You want to print a table of names and scores aligned in columns using Rust's formatting. Which code correctly aligns the names left in 10 spaces and scores right in 5 spaces?
let name = "Alice";
let score = 93;
// Which println! line is correct?
hard
A. println!("{:<10} | {:>5}", name, score);
B. println!("{:>10} | {:<5}", name, score);
C. println!("{:10} | {:5}", name, score);
D. println!("{:^10} | {:^5}", name, score);

Solution

  1. Step 1: Understand alignment specifiers

    {:<10} aligns left in 10 spaces, {:>5} aligns right in 5 spaces.
  2. Step 2: Match alignment to requirements

    Names should be left aligned, scores right aligned, so println!("{:<10} | {:>5}", name, score); matches perfectly.
  3. Final Answer:

    println!("{:<10} | {:>5}", name, score); -> Option A
  4. Quick Check:

    Left align = <, Right align = > [OK]
Hint: Use <: for left, >: for right alignment [OK]
Common Mistakes:
  • Swapping alignment symbols
  • Omitting width numbers
  • Using center alignment when not needed
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard