How to get user input in Ruby

Key takeaways:

  1. The gets method captures user input from the terminal and returns it as a string.

  2. Convert input types:

    1. To convert a numeric string to an integer, use to_i:

    2. For floating-point numbers, use to_f:

  3. The chomp method removes the newline character at the end of the input string.

  4. ARGF allows reading from files specified in command-line arguments or from standard input:

  5. STDIN is a global constant representing the standard input stream, which can be used with gets.

Getting user input in Ruby is a foundational skill for creating interactive programs, allowing applications to respond dynamically based on user actions. In Ruby, capturing input from users is simple and flexible, making it ideal for beginners and seasoned developers alike. Whether you’re building a command-line application, taking input for data processing, or making interactive scripts, Ruby offers straightforward methods, like gets.chomp, for retrieving and handling user input. This Answer covers the essentials of gathering user input, formatting it, and using it effectively within your Ruby programs.

User input using gets

To get user input in Ruby, we can use the gets method. When a line with the gets method is read, the terminal is primed for input from the user. The input is returned as a string type after the gets method is finished. Here’s an example:

puts "Enter the longest sentence you can think of."
sentence = gets
puts " #{sentence} , You are a genius."

Enter the input below

In this example, the gets method is used to receive input from the user, which is then stored in the name variable.

 The puts method is used to display a prompt message to the user. The gets method then waits for the user to enter input, which is stored in the name variable as a string type.

to_i method

The to_i method is used to convert the numeric string to an integer. Here’s an example:

puts "Enter your age"
input = gets.chomp
age = input.to_i + 3
puts "In three years you will be #{age} years old."

Enter the input below

The resulting string is converted to an integer using to_i. Finally, the integer is printed back to the user using string interpolation.

to_f method

We can use the to_f method to convert the numeric string to a floating-point value. Here’s an example:

puts "Enter your weight in kg's"
input = gets.chomp
weight_kg = input.to_f
weight_lb = weight_kg / 0.45359237
puts "Your weight in pounds is #{weight_lb}."

Enter the input below

The resulting string is converted to a float using to_f. Finally, the float is printed back to the user using string interpolation.

However, the gets method also includes a newline character (\n) at the end of the input string. This can cause issues when working with the input later on.

chomp method

The utilization of the chomp method involves the removal of the newline character at the conclusion of a string. It is frequently employed in tandem with the gets method to eliminate the automatically appended newline character at the end of the input string. Here is an illustrative example:

puts "Enter your name?"
name = gets.chomp
puts "Hi, #{name}!"

Enter the input below

In this example, the chomp method is used to remove the newline character from the end of the input string that is returned by the getsmethod.

Different ways to get user input

ARGF

ARGF is a module in Ruby designed for reading files provided as command-line arguments or from standard input (STDIN) in a terminal. It acts as a virtual concatenation of files specified in command-line arguments. In the absence of any specified files, ARGF defaults to reading from standard input, similar to the behavior of gets. Here’s an illustration of using ARGF to obtain user input:

puts "Write something about yourself"
text = ARGF.gets.chomp
puts " #{text}"

Enter the input below

This code functions in a manner akin to the previous examples, with the added capability to manage input from files when provided as command-line arguments.

STDN

STDIN is a global constant within Ruby, serving as a representation of the standard input stream. Utilizing STDIN provides an alternative method for obtaining user input. The gets method can be employed in conjunction with STDIN to capture input from the user:

puts "which is your favorite season"
Season = STDIN.gets.chomp
puts "Your favorite season is #{Season}."

Enter the input below

This code operates similarly to the earlier examples. Although STDIN is not as widely utilized as gets, it proves beneficial in specific scenarios where there is a need to explicitly designate the input stream.

Conclusion

In conclusion, user input is a fundamental aspect of creating interactive Ruby applications, enabling programs to respond dynamically to user needs. By utilizing methods like gets, to_i, to_f, chomp, and modules like ARGF and STDIN, developers can effectively gather and manipulate input data. These techniques not only enhance user engagement but also ensure that applications can handle various types of information seamlessly. Mastering these input methods will significantly improve your Ruby programming skills, allowing you to build more responsive and user-friendly applications.

Frequently asked questions

Haven’t found what you were looking for? Contact Us


How do you get keyboard input in Ruby?

Use gets.chomp to capture keyboard input in Ruby. This method waits for the user to type and then removes any trailing newline character.


How to get a string from a user in Ruby

To get a string from the user, use gets.chomp. This reads the user’s input and removes the newline, so it’s ready for use as a string.


Free Resources

Copyright ©2025 Educative, Inc. All rights reserved