How to get Input from the User in Golang?

In this tutorial, we will see how to get the input from the user in Golang. Golang has a library that consists of an input/output function which helps in printing and taking the output. The function to take the input is Scanln().

Algorithm

For Taking Integer Input with User

  • STEP 1 ? We are importing the fmt package that has the input/output functions.

  • STEP 2 ? We are declaring a variable after that we are printing the lines to ask the user to give the input

  • STEP 3 ? Then using fmt.Scanln() we are taking the input and storing it into a variable

  • STEP 4 ? We are checking the input from the user that its mode with 2 is zero or not using

Example 1

In this example, we will take an integer input from the user.

<div class="code-mirror  language-java" contenteditable="plaintext-only" spellcheck="false" style="outline: none; overflow-wrap: break-word; overflow-y: auto; white-space: pre-wrap;"><span class="token keyword">package</span> <span class="token namespace">main</span>

<span class="token comment">// fmt package provides the function to print anything</span>
<span class="token keyword">import</span> <span class="token string">"fmt"</span>

func <span class="token function">main</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>

   <span class="token comment">// declaring the variable using the var keyword</span>
   <span class="token keyword">var</span> numberFromUser <span class="token keyword">int</span>
   <span class="token class-name"><span class="token namespace">fmt<span class="token punctuation">.</span></span>Println</span><span class="token punctuation">(</span><span class="token string">"Please enter the number you want to check that it is divisible by 2 or not:"</span><span class="token punctuation">)</span>
   
   <span class="token comment">// scanning the input by the user</span>
   <span class="token class-name"><span class="token namespace">fmt<span class="token punctuation">.</span></span>Scanln</span><span class="token punctuation">(</span><span class="token operator">&</span>numberFromUser<span class="token punctuation">)</span>
   <span class="token comment">// logic to check that number is divisible by 2 or not</span>
   <span class="token keyword">if</span> numberFromUser<span class="token operator">%</span><span class="token number">2</span> <span class="token operator">==</span> <span class="token number">0</span> <span class="token punctuation">{</span>
      <span class="token class-name"><span class="token namespace">fmt<span class="token punctuation">.</span></span>Println</span><span class="token punctuation">(</span>numberFromUser<span class="token punctuation">,</span> <span class="token string">"is divisible by 2"</span><span class="token punctuation">)</span>
   <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span>
      <span class="token class-name"><span class="token namespace">fmt<span class="token punctuation">.</span></span>Println</span><span class="token punctuation">(</span>numberFromUser<span class="token punctuation">,</span> <span class="token string">"is not divisible by 2"</span><span class="token punctuation">)</span>
   <span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</div>

Output 1

Please enter the number you want to check that it is divisible by 2 or not:
33
33 is not divisible by 2

Output 2

Please enter the number you want to check that it is divisible by 2 or not:
28
28 is divisible by 2

Example 2

In this example, we will take a string input from the user.

<div class="code-mirror  language-java" contenteditable="plaintext-only" spellcheck="false" style="outline: none; overflow-wrap: break-word; overflow-y: auto; white-space: pre-wrap;"><span class="token keyword">package</span> <span class="token namespace">main</span>

<span class="token comment">// fmt package provides the function to print anything</span>
<span class="token keyword">import</span> <span class="token string">"fmt"</span>

func <span class="token function">main</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
   <span class="token comment">// declaring the float variables</span>
   <span class="token keyword">var</span> number1<span class="token punctuation">,</span> number2<span class="token punctuation">,</span> answer float32
   <span class="token class-name"><span class="token namespace">fmt<span class="token punctuation">.</span></span>Println</span><span class="token punctuation">(</span><span class="token string">"Enter the numbers on which you want to perform arithmetic operators."</span><span class="token punctuation">)</span>
   
   <span class="token comment">// scanning the input by the user</span>
   <span class="token class-name"><span class="token namespace">fmt<span class="token punctuation">.</span></span>Println</span><span class="token punctuation">(</span><span class="token string">"Enter the first number."</span><span class="token punctuation">)</span>
   <span class="token class-name"><span class="token namespace">fmt<span class="token punctuation">.</span></span>Scanln</span><span class="token punctuation">(</span><span class="token operator">&</span>number1<span class="token punctuation">)</span>
   <span class="token class-name"><span class="token namespace">fmt<span class="token punctuation">.</span></span>Println</span><span class="token punctuation">(</span><span class="token string">"Enter the second number."</span><span class="token punctuation">)</span>
   <span class="token class-name"><span class="token namespace">fmt<span class="token punctuation">.</span></span>Scanln</span><span class="token punctuation">(</span><span class="token operator">&</span>number2<span class="token punctuation">)</span>
   
   <span class="token comment">// declaring the string variable using the var keyword</span>
   <span class="token keyword">var</span> operator string
   <span class="token class-name"><span class="token namespace">fmt<span class="token punctuation">.</span></span>Println</span><span class="token punctuation">(</span><span class="token string">"Enter the operator you want to perform on two numbers."</span><span class="token punctuation">)</span>
   
   <span class="token comment">// scanning the input by the user</span>
   <span class="token class-name"><span class="token namespace">fmt<span class="token punctuation">.</span></span>Scanln</span><span class="token punctuation">(</span><span class="token operator">&</span>operator<span class="token punctuation">)</span>
   <span class="token keyword">switch</span> operator <span class="token punctuation">{</span>
      <span class="token keyword">case</span> <span class="token string">"+"</span><span class="token operator">:</span>
         answer <span class="token operator">=</span> number1 <span class="token operator">+</span> number2
         <span class="token class-name"><span class="token namespace">fmt<span class="token punctuation">.</span></span>Println</span><span class="token punctuation">(</span><span class="token string">"The addition of"</span><span class="token punctuation">,</span> number1<span class="token punctuation">,</span> <span class="token string">"and"</span><span class="token punctuation">,</span> number2<span class="token punctuation">,</span> <span class="token string">"is"</span><span class="token punctuation">,</span> answer<span class="token punctuation">)</span>
      <span class="token keyword">case</span> <span class="token string">"-"</span><span class="token operator">:</span>
         answer <span class="token operator">=</span> number1 <span class="token operator">-</span> number2
         <span class="token class-name"><span class="token namespace">fmt<span class="token punctuation">.</span></span>Println</span><span class="token punctuation">(</span><span class="token string">"The subtraction of"</span><span class="token punctuation">,</span> number1<span class="token punctuation">,</span> <span class="token string">"and"</span><span class="token punctuation">,</span> number2<span class="token punctuation">,</span> <span class="token string">"is"</span><span class="token punctuation">,</span> answer<span class="token punctuation">)</span>
      <span class="token keyword">case</span> <span class="token string">"*"</span><span class="token operator">:</span>
         answer <span class="token operator">=</span> number1 <span class="token operator">*</span> number2
         <span class="token class-name"><span class="token namespace">fmt<span class="token punctuation">.</span></span>Println</span><span class="token punctuation">(</span><span class="token string">"The multiplication of"</span><span class="token punctuation">,</span> number1<span class="token punctuation">,</span> <span class="token string">"and"</span><span class="token punctuation">,</span> number2<span class="token punctuation">,</span> <span class="token string">"is"</span><span class="token punctuation">,</span> answer<span class="token punctuation">)</span>
      <span class="token keyword">case</span> <span class="token string">"/"</span><span class="token operator">:</span>
         answer <span class="token operator">=</span> number1 <span class="token operator">/</span> number2
         <span class="token class-name"><span class="token namespace">fmt<span class="token punctuation">.</span></span>Println</span><span class="token punctuation">(</span><span class="token string">"The division of"</span><span class="token punctuation">,</span> number1<span class="token punctuation">,</span> <span class="token string">"and"</span><span class="token punctuation">,</span> number2<span class="token punctuation">,</span> <span class="token string">"is"</span><span class="token punctuation">,</span> answer<span class="token punctuation">)</span>
   <span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</div>

In the above code, we are performing arithmetic operators where

  • first, we are declaring three float variables two of which store the input of numbers from the user, and the third one will store the answer after performing the arithmetic operation.

  • Now we are taking the arithmetic operator as input from the user.

  • In last we are using the switch case to compare the operator input and performing and printing the respective answer.

Output 1

Enter the numbers on which you want to perform arithmetic operators.
Enter the first number.
10
Enter the second number.
20
Enter the operator you want to perform on two numbers.
+
The addition of 10 and 20 is 30.

Output 2

Enter the numbers on which you want to perform arithmetic operators.
Enter the first number.
30
Enter the second number.
10
Enter the operator you want to perform on two numbers.
-
The subtraction of 30 and 10 is 20.

Output 3

Enter the numbers on which you want to perform arithmetic operators.
Enter the first number.
30
Enter the second number.
5
Enter the operator you want to perform on two numbers.
*
The multiplication of 30 and 5 is 150.

Output 4

Enter the numbers on which you want to perform arithmetic operators.
Enter the first number.
10
Enter the second number.
2
Enter the operator you want to perform on two numbers.
/
The division of 10 and 2 is 5.

Example 3

Take two string words as input.

<div class="code-mirror  language-java" contenteditable="plaintext-only" spellcheck="false" style="outline: none; overflow-wrap: break-word; overflow-y: auto; white-space: pre-wrap;"><span class="token keyword">package</span> <span class="token namespace">main</span>
<span class="token keyword">import</span> <span class="token punctuation">(</span>
   <span class="token string">"bufio"</span>
   <span class="token string">"fmt"</span>
   <span class="token string">"os"</span>
   <span class="token string">"strings"</span>
<span class="token punctuation">)</span>
func <span class="token function">main</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
   
   <span class="token comment">// declaring the variable using the var keyword</span>
   <span class="token keyword">var</span> capitalOfSouthAfrica string
   <span class="token class-name"><span class="token namespace">fmt<span class="token punctuation">.</span></span>Println</span><span class="token punctuation">(</span><span class="token string">"What is the capital of South Africa"</span><span class="token punctuation">)</span>
   <span class="token class-name"><span class="token namespace">fmt<span class="token punctuation">.</span></span>Println</span><span class="token punctuation">(</span><span class="token string">"Please enter your answer:"</span><span class="token punctuation">)</span>
   
   <span class="token comment">// scanning the input by the user</span>
   inputReader <span class="token operator">:</span><span class="token operator">=</span> <span class="token class-name"><span class="token namespace">bufio<span class="token punctuation">.</span></span>NewReader</span><span class="token punctuation">(</span><span class="token class-name"><span class="token namespace">os<span class="token punctuation">.</span></span>Stdin</span><span class="token punctuation">)</span>
   capitalOfSouthAfrica<span class="token punctuation">,</span> _ <span class="token operator">=</span> <span class="token class-name"><span class="token namespace">inputReader<span class="token punctuation">.</span></span>ReadString</span><span class="token punctuation">(</span><span class="token string">'\n'</span><span class="token punctuation">)</span>
   
   <span class="token comment">// remove the delimiter from the string</span>
   capitalOfSouthAfrica <span class="token operator">=</span> <span class="token class-name"><span class="token namespace">strings<span class="token punctuation">.</span></span>TrimSuffix</span><span class="token punctuation">(</span>capitalOfSouthAfrica<span class="token punctuation">,</span> <span class="token string">"\n"</span><span class="token punctuation">)</span>
   <span class="token keyword">if</span> capitalOfSouthAfrica <span class="token operator">==</span> <span class="token string">"Capetown"</span> <span class="token punctuation">{</span>
      <span class="token class-name"><span class="token namespace">fmt<span class="token punctuation">.</span></span>Println</span><span class="token punctuation">(</span><span class="token string">"You are right!"</span><span class="token punctuation">)</span>
   <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span>
      <span class="token class-name"><span class="token namespace">fmt<span class="token punctuation">.</span></span>Println</span><span class="token punctuation">(</span><span class="token string">"Sorry,the wrong answer, it is not"</span><span class="token punctuation">,</span> capitalOfSouthAfrica<span class="token punctuation">,</span> <span class="token string">", it's Capetown."</span><span class="token punctuation">)</span>
   <span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</div>

In the above example first, we are importing the bufio package that has the input/output functions. Then inside the main function, we are declaring a string variable after that we are printing the lines to ask the user to give the input. Then using bufio we are creating an input reader object which is in the next line reading the string input and storing it into a variable. In last we are comparing the input from the user to Capetown using the if condition and print accordingly if the user has given the right input or not.

Output 1

What is the capital of South Africa
Please enter your answer:
Capetown
You are right!

Output 2

What is the capital of South Africa
Please enter your answer:
New York
Sorry, the wrong answer, it is not New York, it's Capetown.

This is all about the libraries and the function used to take the input from the user. To learn more about Golang you can explore this tutorials.

Updated on: 2022-08-26T09:46:33+05:30

9K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements