Programming in c++(visual studio 2019):
I’m prompting the user to input “even odd or random” to start my code and noticed the while loop I use to check of the user input is valid or not freaks out if I go over the char limit I gave the user input. Can I fix this or do I just need to increase the input size?
Transcribed Image Text:The image displays a portion of C++ code within a development environment. The code is part of a function called `getinput` that takes an integer reference `userInput` as its parameter. It prompts the user to specify if their array is "Even," "Odd," or "Random."
### Code Explanation:
1. **Variable Declaration:**
```cpp
char user[8];
```
An array of characters, `user`, is declared with a size of 8 to store the user's input.
2. **User Prompt:**
```cpp
cout << "Is your array Even, Odd or Random?" << endl;
```
The program requests the user to input whether their array is even, odd, or random.
3. **Input Handling:**
```cpp
std::cin.getline(user, sizeof user);
```
It reads the user's input using `getline` to ensure it captures the entire line.
4. **String Comparison and Conditional Logic:**
- If the input is "Odd":
```cpp
if (_stricmp(user, "Odd") == 0)
{
userInput = 1; // 1 = odd
return userInput;
}
```
The function sets `userInput` to 1 and returns this value.
- If the input is "Even":
```cpp
else if (_stricmp(user, "Even") == 0)
{
userInput = 2; // 2 = even
return userInput;
}
```
The function sets `userInput` to 2 and returns this value.
- If the input is "Random":
```cpp
else if (_stricmp(user, "Random") == 0)
{
userInput = 3; // 3 = rand
return userInput;
}
```
The function sets `userInput` to 3 and returns this value.
5. **Default Case:**
If the input does not match any of the specified options, `userInput` is set to 0 and returned:
```cpp
else
{
userInput = 0;
return userInput;
}
```
### Additional Observations:
- **Case Insensitivity:**
The code uses `_stricmp`, which compares strings case-insensitively, allowing for more flexible user
Transcribed Image Text:**C++ Input Validation Program**
This C++ program demonstrates input validation by using a loop to ensure the user provides a valid entry. The program is structured as follows:
1. **Header Inclusions:**
```cpp
#include <iostream>
#include <fstream>
#include <cstring>
```
2. **Namespace Usage:**
```cpp
using std::ofstream;
using std::endl;
using std::cout;
using std::cin;
```
3. **Function Declaration:**
- `int getinput(int& userInput);`
- This line declares a function `getinput`, which takes a reference to an integer `userInput`.
4. **Main Function:**
```cpp
int main()
{
int userInput;
const int MAX = 500;
int array[MAX];
getinput(userInput);
cout << userInput << endl;
while (userInput != 1 && userInput != 2 && userInput != 3)
{
if (userInput == 0)
{
cout << "Not a valid input. Try again:" << endl;
getinput(userInput);
}
}
}
```
- **Variables:**
- `int userInput;` - Stores user input.
- `const int MAX = 500;` - A constant defining the maximum size of the array.
- `int array[MAX];` - An integer array of size MAX.
- **Input Handling:**
- `getinput(userInput);`: Initially calls the `getinput` function to retrieve user input.
- `cout << userInput << endl;`: Outputs the received user input.
- **Validation Loop:**
- `while (userInput != 1 && userInput != 2 && userInput != 3)`: Repeats the loop until the user input is 1, 2, or 3.
- Inside the loop, there's a check:
- `if (userInput == 0)`: If the input is 0, it prompts an invalid input message and asks for input again.
- ```cpp
cout << "Not a valid input. Try again:" << endl;
getinput(userInput);
```
This simple program highlights basic input validation techniques in C++, ensuring robustness by demanding specific acceptable
Process by which instructions are given to a computer, software program, or application using code.
Expert Solution
Introduction:
C++ is a programming language. It is simple and easy to use because programs are concerned with simple task like calculations.
The most widely used concept in C++ is OOPS concept. (Object Oriented Programming Language).
Given Program
#include <iostream> #include <fstream> #include <cstring> using std::ofstream; using std::end1; using std::count; using std::cin; int getinput(int& userInput); int main() { int userInput; const int MAX = 500; int array[MAX]; getinput(userInput); cout << userInput << end1; while (userInput !=1 && userInput !=2 && userInput != 3) { if (userInput == 0) { cout << "Not a valid input. Try again:" << end1; getinput(userInput); } } int getinput(int& userInput) { char user[8]; cout << "Is your array Even, Odd or Random?" << end1; std::cin.getline(user, sizeof user); if (_stricmp(user, "odd") == 0) { userInput = 1; return userInput; } else if (_stricmp(user, "Even") == 0) { userInput = 2; return userInput; } else if (_stricmp(user, "Random") == 0) { userInput = 3; return userInput; } else { userInput = 0; return userInput; } } }
In the given program the following errors:
Step by step
Solved in 4 steps with 5 images
Knowledge Booster
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.