[英]I can't print a vector inside a switch case
這是我的第一個問題。 我剛剛開始學習 C++,我被困在這個練習中:
您的程序應該向用戶顯示一個菜單選項,如下所示:
P--打印向量
A--加號
M--數字的顯示均值
S--顯示最小的數
L--顯示最大數
Q--退出輸入您的選擇:
基本上,我需要為這些操作做一個菜單。 我被困在打印矢量的部分。 我已經嘗試使用 ( for auto:....
) 並且還嘗試使用普通索引 ( int i = 0...
),但是向量中的內容沒有出現,只有消息"This is your list of numbers:"
。 我還嘗試創建一個 function 以確保用戶在A
案例中輸入了 integer,但不知道該怎么做:(
這是我的代碼:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
bool control_end = false;
do
{
cout << "Please enter your desired function within the menu: " << endl;
cout << endl;
cout << "P--Print list of numbers" << endl;
cout << "A--Add a number"<< endl;
cout << "M--Display mean of the number"<< endl;
cout << "S--Display the smallest number"<< endl;
cout << "L--Display the largest number"<< endl;
cout << "Q--Quit "<< endl;
cout << endl;
cout << "Enter your choice: ";
char letra{};
cin >> letra;
vector<int> vector{};
switch(letra)
{
case 'A':
case 'a':
{
cout << "Please enter the value (integer) to be added to vector: ";
int value_add;
cin >> value_add;
cout << endl;
vector.push_back(value_add);
//(later do it) create a function to ensure that the value is an integer
break;
}
case 'p':
case 'P':
{
cout << "This is your list of numbers: \n";
for (unsigned int i=0 ;i < vector.size(); i++)
cout << vector[i] << " ";
break;
}
case 'm':
case 'M':
cout << "test M";
break;
case 's':
case 'S':
cout << "test S";
break;
case 'L':
case 'l':
cout << "test L";
break;
case 'q':
case 'Q':
cout << "Thank you for using the program" << endl;
control_end = true;
break;
default:
cout << "Invalid char. " << endl;
cout << endl;
break;
}
for(auto vec: vector)
cout << vec << endl;
}
while (control_end !=true);
return 0;
}
您在循環內創建了變量vector
,因此在循環結束時變量被銷毀,並在下一次迭代中創建一個新的空變量。 因此,如果您希望您的變量在循環迭代之間保留值,您應該在循環 scope 之外聲明它,就像您對變量control_end
所做的一樣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.