下标值不是数组,指针或向量

时间:2014-10-15 04:23:46

标签: c++ arrays pointers

我刚开始学习编程,我有两个问题:

  1. 在第二个for循环中,它表示下标值不是数组, 指针或矢量。
  2. 由于某种原因,我无法建立该计划。
  3. -

    #include <iostream>
    #include <iomanip>
    #include <stdio.h>
    using namespace std;
    
    const int SIZE = 100;
    
    string inputString(string, int, int); 
    void clearCIN();
    double inputDouble(string, double, double); 
    int inputInt(string, int, int, int);
    
    
    int main(int argc, const char * argv[]) {
    
    int empNo [SIZE];
    string empName [SIZE];
    double empPay[SIZE];
    int userEntry = 0;
    int count = 0;
    int secom
    cout << "Welcome to Employee management program";
    for (count = 0 ; count < SIZE; count ++) {
        userEntry = inputInt("please enter a employee number;", 0, 1000, -999);
            if (userEntry == -999)
                             break;
            else
                empNo[count] = userEntry;
        empName[count] = inputString ("Please enter a name (1-15 characters)", 1, 15);
        empPay[count] = inputDouble ("Please enter the employee's pay)", 0, 100000);
    }
    
    
    cout << setw(9) << left << "Employee ID" << setw(9) << right << "Employee Name" << setw(9) <<    "Employee Salary" << endl;
    cout << setw(9) << left << "======================" << setw(9) << right << "=========" << setw(9) << "=========" << endl;
    cout << setw(9) << left << userEntry << setw(9) << right << empName << setw(9) << empPay  <<   endl;
    
    for (int secondCount = 0 ; secondCount < count; secondCount++) {
    cout << setw(9) << left << userEntry [secondCount] << setw(9) << right << empName [secondCount] << setw(9) << empPay [secondCount] << endl;
    
        return 0;
    }
    }
    

3 个答案:

答案 0 :(得分:1)

您将userEntry声明为int但尝试将其作为数组进行访问。这就是错误告诉你的。

答案 1 :(得分:0)

您打算打印empno[secondCount]吗?

for (int secondCount = 0 ; secondCount < count; secondCount++) {
cout << setw(9) << left << empno [secondCount] << setw(9) << right << empName [secondCount] << setw(9) << empPay [secondCount] << endl;

应该编译。

作为旁注,您从未加入<string>。您的程序可能并不抱怨,因为您所包含的标题中有一个包含它,但通常最好包含您正在使用的所有stl类型的标题。

答案 2 :(得分:0)

变量userEntry被定义为标量对象

int userEntry = 0;

因此,在此语句中将下标运算符应用于此变量是没有意义的。

cout << setw(9) << left << userEntry [secondCount] << setw(9) << right << empName [secondCount] << setw(9) << empPay [secondCount] << endl;

考虑到这个陈述

cout&lt;&lt; setw(9)&lt;&lt;左&lt;&lt; userEntry&lt;&lt; setw(9)&lt;&lt;对&lt;&lt; empName&lt;&lt; setw(9)&lt;&lt; empPay&lt;&lt; ENDL;

除非你输出数组的第一个元素的地址,否则

也没有任何意义。