0
#include <iostream> 
#include <string>
#include <math.h> 
#include <fstream>
using namespace std;

int main()
{
    int i;
    string information[10][7];

    //This bit should check if theres anything stored currently.
    cout << "\nWhich Slot would you like to store the informaton in ?(1-10)";
    cin >> i;
    i--;

    //input
    for (int j=0;j<7;j++)
    {
        switch(j+1)
        {
        case 1:
            cout << "\nFirst Name: ";
            break;
        case 2:
            cout << "\nLast Name: ";
            break;
        case 3:
            cout << "\nAge: ";
            break;
        case 4:
            cout << "\nEmail: ";
            break;
        case 5:
            cout << "\nDoor Number: ";
            break;
        case 6:
            cout << "\nRoad Name: ";
            break;
        case 7:
            cout << "\nPost Code: ";
            break;
        default:
            ;
        }

        cin >> information[i][j];
    }

    // output
    for (int j=0;j<7;j++)
    {   
        switch(j+1)
        {
        case 1:
            cout << "\nFirst Name: ";
            break;
        case 2:
            cout << "\nLast Name: ";
            break;
        case 3:
            cout << "\nAge: ";
            break;
        case 4:
            cout << "\nEmail: ";
            break;
        case 5:
            cout << "\nDoor Number: ";
            break;
        case 6:
            cout << "\nRoad Name: ";
            break;
        case 7:
            cout << "\nPost Code: ";
            break;
        default:
            ;
        }       

        cout << information[i][j];
    }
    system("PAUSE");

    return 0;
}

基本上问题是我将如何处理这段代码来检查用户选择的数组是否已经存储了信息?我如何检查。另外我想知道我如何通过输入他们的年龄来搜索用户的详细信息,例如即使我使用了字符串是可能的还是我必须使用 int。?

4

3 回答 3

1

使用 bool 数组可能会产生一些开销,但如果您也在执行删除操作,则可能会有所帮助:

bool stored[10] = {false};

/* ... */

do {
  cout << "\nWhich Slot would you like to store the informaton in ?(1-10)";
  cin >> i;
  i--;
} while (stored[i]);

stored[i] = true;

当然,您可以定义一个包含 7 个字符串成员和一个布尔值用于此信息的类/结构。

于 2012-12-28T00:45:56.493 回答
0

使用string::length函数 ( information[1].length()) 怎么样?如果它返回 0,那么它还没有被初始化。

只需进行比较即可找到某些东西。

于 2012-12-28T01:57:37.757 回答
0

让我们从这样一个事实开始,即您的代码看起来像您的数组一样,您有十个 7 个字符长的字段。即使我们交换它,名称或电子邮件地址只有 10 个字符是相当短的。我的姓是 9 个字母,我见过比这更长的名字。

最后是你的问题。您可以使用 perreal 建议的方法。但我可能会简单地做if (string[i][0] == "") ... stuff to do when it's empty ...;

于 2012-12-28T00:51:00.520 回答