如何将用户输入存储在int数组中
How to store user input in an int array
我需要要求用户输入8个邮政编码,然后将它们存储在整数数组中,然后逐个输出,每个都在一个新的行中。这两件事应该在不同的职能中完成。但是当它第一次运行代码时,它只显示菜单,然后第二次在循环中,当我输入L并输入8个邮政编码时,它显示了这个错误输入您的选择:libc++abi。dylib:终止未捕获的异常类型std::out_of_range: basic_string(在这里optionInChar= optionstring .at(0);)
using namespace std;
void DisplayCityZipCodes();
int LoadCityZipCodes(int ZipCodes[],int SIZE);
void DisplayCityZipCodes(int ZipCodes[],int SIZE);
void DisplayMenu();
char GetOption();
int main(){
int const SIZE=8;
int ZipCodes[SIZE]={0};
bool moreWork=true;
option=GetOption();
while(moreWork) {
DisplayMenu();
option=GetOption();
switch(option){
case 'L':
ZipCodes[SIZE]= LoadCityZipCodes(ZipCodes, SIZE);
break;
cout<<"D";
case 'D': DisplayCityZipCodes(ZipCodes, SIZE);
break;
}
}
}
void DisplayMenu(){
cout<<" **********************nn";
cout<<" San Jose City Zip codesnn";
cout<<" **********************nn";
cout<<"1. Load City zip codesn";
cout<<"2. Display all City zip codesn";
cout<<"3. Search a City zip coden";
cout<<"4. Reverse the City zip code Listn";
cout<<"5. Quitn";
}
char GetOption(){
string optionInString="";
char optionInChar='a';
cout<<"nnEnter your choice: ";
getline(cin,optionInString);
optionInChar=optionInString.at(0);
cout<<"n";
return optionInChar;
}
int LoadCityZipCodes(int ZipCodes[],int SIZE){
cout<<"PLease enter 8 city Zip Codes ";
int i=0;
for(;i<8;i=i+1){
cin >>ZipCodes[i];
}
return ZipCodes[i];
}
void DisplayCityZipCodes(int ZipCodes[],int SIZE){
int i=0;
for(;i<8;i=i+1){
cout<<ZipCodes[i]<<endl;
}
}
我已经有很长一段时间没有接触c++了,但是这个可以工作。你应该看看变量声明和其他一些东西。
#include<iostream>
#include<conio.h>
using namespace std;
void DisplayCityZipCodes();
void LoadCityZipCodes();
void DisplayMenu();
int const SIZE = 8;
int ZipCodes[SIZE];
int main()
{
DisplayMenu();
return 0;
}
void DisplayMenu()
{
int ch;
cout << " **********************nn";
cout << " San Jose City Zip codesnn";
cout << " **********************nn";
do
{
cout << "1. Load City zip codesn";
cout << "2. Display all City zip codesn";
cout << "3. Search a City zip coden";
cout << "4. Reverse the City zip code Listn";
cout << "5. Quitn";
cout << "nPlease enter your choice:";
cin >> ch;
switch (ch)
{
case 1:
LoadCityZipCodes();
break;
case 2:
DisplayCityZipCodes();
break;
case 5:
exit(0); //You will need to include math.h for this.
default:
cout << "please enter a proper choice!";
break;
}
} while (1);
}
void LoadCityZipCodes()
{
cout << "PLease enter 8 city Zip Codes ";
for (int i=0; i<8; i++)
{
cin >> ZipCodes[i];
}
}
void DisplayCityZipCodes()
{
for (int i=0; i<8; i++)
{
cout << ZipCodes[i] << endl;
}
}
可以用case 3和case 4添加剩余的函数。试着调试代码,看看它是如何工作的,然后再发布:)
您需要仔细查看语句
return ZipCodes[i];
和
ZipCodes[SIZE]= LoadCityZipCodes(ZipCodes, SIZE);
在这两种情况下,你都使用ZipCodes[8]
,这肯定超出了范围。
要解决这两个问题,不要从LoadCityZipCodes
返回任何东西(即使其返回void
),因为它已经设置了数组中的值
您需要记住,在编程时我们从0开始计数。这意味着对于大小为8的数组,所有有效的索引是:0,1,2,3,4,5,6,7。当您尝试使用ZipCodes[8]访问数组时,您正在请求超出范围的第9个元素。
相关文章:
- 按字符值访问int数组
- 将 int 数组转换为 std::vector<int*>
- C++,在int数组中输入字符串或字符会输出0,而不是ascii或error
- 整数区间(或 int 数组)中每个数字的出现次数
- Int 数组到C++容器
- C++ 未初始化的本地(非全局)int 数组中的元素类型到底是什么?
- 如何检测将文本文件读入 int 数组的新行
- C++快速将 int 数组内容转储到文本文件中
- <string> 如何在使用 SWIG 时将 int 数组和 List 作为参数传递给 C# C++
- 如何制作不允许重复值的 C++ int 数组循环?
- 如何将逗号分隔的文件读取为 2D int 数组?
- int 数组,但索引是字符?
- 使用可变参数函数将整数和/或整数数组放入单个 int 数组中
- 将 int 数组转换为带有小数C++的双精度数组
- 将双精度值分配给 int 数组时的类型转换
- 已编辑 我如何将其拆分为 char 和 int 数组
- 从 C++ 中的 int ** 数组访问元素
- C++程序无法分配 int 数组?
- 我正在编写一个代码来将 int 数组存储在文件中,然后用 c++ 检索它,但是检索第一项是假值,我该如何解决这个问题?
- 如何通过头文件中的函数初始化 const int 数组?